Symbol.toPrimitive
< JavaScript | Symbol
الرمز المعروف Symbol.toPrimitive
يُشير إلى خاصيةٍ قد أُسنِدَت إليها دالةٌ التي يمكن أن تستدعى لتحويل الكائن إلى القيمة الأوليّة المناسبة.
سمات الخاصية Symbol.toPrimitive | |
---|---|
قابلة للكتابة | لا |
قابلة للإحصاء | لا |
قابلة للضبط | لا |
الوصف
بمساعدة الخاصية Symbol.toPrimitive
(التي تُشير إلى دالة)، يمكننا تحويل الكائنات إلى القيم الأوليّة الموافقة لها، وهذه الدالة تُستدعى مع الوسيط النصي hint
، والذي يُحدِّد ما هو النوع المُفضَّل للقيمة الأوليّة المُعادة، ويمكن أن تكون قيمة هذا الوسيط "number"
أو "string"
أو "default"
.
أمثلة
المثال الآتي يبيّن كيف يمكن أن تُستخدَم الخاصية Symbol.toPrimitive
لتعديل القيمة الأوليّة المعادة من كائنٍ ما. لاحظ كيف اختلفت قيمة الكائن obj2
عند استخدامه في سياقٍ عددي وسياقٍ نصيّ:
var obj1 = {};
console.log(+obj1); // NaN
console.log(`${obj1}`); // "[object Object]"
console.log(obj1 + ''); // "[object Object]"
var obj2 = {
[Symbol.toPrimitive](hint) {
if (hint == 'number') {
return 10;
}
if (hint == 'string') {
return 'hello';
}
return true;
}
};
console.log(+obj2); // 10 -- hint is "number"
console.log(`${obj2}`); // "hello" -- hint is "string"
console.log(obj2 + ''); // "true" -- hint is "default"
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | 48 | 44 | غير مدعومة | نعم | نعم |
على النقيض من متصفح IE، يدعم متصفح Edge هذه الميزة.
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).