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).