Symbol.toPrimitive
< JavaScript | Symbol
اذهب إلى التنقل
اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
الرمز المعروف 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).