Symbol.toStringTag
< JavaScript | Symbol
الرمز المعروف 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).