الفرق بين المراجعتين لصفحة: «JavaScript/Symbol/toStringTag»
< JavaScript | Symbol
لا ملخص تعديل |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 66: | سطر 66: | ||
* مسودة المعيار [https://tc39.github.io/ecma262/#sec-symbol.tostringtag ECMAScript Latest Draft]. | * مسودة المعيار [https://tc39.github.io/ecma262/#sec-symbol.tostringtag ECMAScript Latest Draft]. | ||
* معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-symbol.tostringtag ECMAScript 2015 (6th Edition)]. | * معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-symbol.tostringtag ECMAScript 2015 (6th Edition)]. | ||
[[تصنيف:JavaScript]] | [[تصنيف:JavaScript|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Global Objects]] | [[تصنيف:JavaScript Global Objects|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Symbol]] | [[تصنيف:JavaScript Symbol|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 15:38، 28 يناير 2018
الرمز المعروف Symbol.toStringTag
يُشير إلى خاصيةٍ تحمل سلسلةً نصيةً التي تُستخدَم في إنشاء الوصف النصي الافتراضي للكائن، وتستخدمها الدالة Object.prototype.toString()
داخليًا.
سمات الخاصية Symbol.toStringTag | |
---|---|
قابلة للكتابة | لا |
قابلة للإحصاء | لا |
قابلة للضبط | لا |
الوصف
العديد من أنواع البيانات في لغة JavaScript لها وسوم نصية (tags):
Object.prototype.toString.call('foo'); // "[object String]"
Object.prototype.toString.call([1, 2]); // "[object Array]"
Object.prototype.toString.call(3); // "[object Number]"
Object.prototype.toString.call(true); // "[object Boolean]"
Object.prototype.toString.call(undefined); // "[object Undefined]"
Object.prototype.toString.call(null); // "[object Null]"
// ...
وهنالك دوال أخرى عُرِّفَ فيها الرمز Symbol.toStringTag
:
Object.prototype.toString.call(new Map()); // "[object Map]"
Object.prototype.toString.call(function* () {}); // "[object GeneratorFunction]"
Object.prototype.toString.call(Promise.resolve()); // "[object Promise]"
// ...
وعند إنشاء صنف كائنات جديد، فإنَّ الوسم النصي الافتراضي الذي تعطيه JavaScript له هو "Object"
:
class ValidatorClass {}
Object.prototype.toString.call(new ValidatorClass()); // "[object Object]"
لكن بمساعدة الرمز Symbol.toStringTag
، فسنتمكن من ضبط الوسم النصي كما نشاء:
class ValidatorClass {
get [Symbol.toStringTag]() {
return 'Validator';
}
}
Object.prototype.toString.call(new ValidatorClass()); // "[object Validator]"
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | 49 | 51 | غير مدعومة | نعم | نعم |
على النقيض من متصفح IE، يدعم متصفح Edge هذه الميزة.
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).