الفرق بين المراجعتين لصفحة: «JavaScript/Symbol/toPrimitive»
< JavaScript | Symbol
لا ملخص تعديل |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 62: | سطر 62: | ||
* مسودة المعيار [https://tc39.github.io/ecma262/#sec-symbol.toprimitive ECMAScript Latest Draft]. | * مسودة المعيار [https://tc39.github.io/ecma262/#sec-symbol.toprimitive ECMAScript Latest Draft]. | ||
* معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-symbol.toprimitive ECMAScript 2015 (6th Edition)]. | * معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-symbol.toprimitive ECMAScript 2015 (6th Edition)]. | ||
[[تصنيف:JavaScript]] | [[تصنيف:JavaScript|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Global Objects]] | [[تصنيف:JavaScript Global Objects|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Symbol]] | [[تصنيف:JavaScript Symbol|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 15:41، 28 يناير 2018
الرمز المعروف 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).