الفرق بين المراجعتين لصفحة: «JavaScript/Symbol/species»
< JavaScript | Symbol
لا ملخص تعديل |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 50: | سطر 50: | ||
* مسودة المعيار [https://tc39.github.io/ecma262/#sec-symbol.species ECMAScript Latest Draft]. | * مسودة المعيار [https://tc39.github.io/ecma262/#sec-symbol.species ECMAScript Latest Draft]. | ||
* معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-symbol.species ECMAScript 2015 (6th Edition)]. | * معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-symbol.species ECMAScript 2015 (6th Edition)]. | ||
[[تصنيف:JavaScript]] | [[تصنيف:JavaScript|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Global Objects]] | [[تصنيف:JavaScript Global Objects|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Symbol]] | [[تصنيف:JavaScript Symbol|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 15:39، 28 يناير 2018
الرمز المعروف Symbol.species
يُشير إلى خاصيةٍ قد أُسنِدَت إليها دالةٌ التي يمكن أن تستعملها الدالة البانية لإنشاء كائنات مشتقة (derived objects).
سمات الخاصية Symbol.species | |
---|---|
قابلة للكتابة | لا |
قابلة للإحصاء | لا |
قابلة للضبط | لا |
الوصف
الخاصية species
تسمح للأصناف الفرعية بإعادة تعريف الدالة البانية الافتراضية للكائنات.
أمثلة
إذا أردنا إعادة كائنات من النوع Array
من الصنف الفرعي MyArray
، مما يمكننا من استخدام دوال مثل الدالة map()
التي تعيد الدالة البانية الافتراضية؛ لذا سنستخدم الخاصية species
لجعل تلك الدوال تُعيد كائن Array
الأب وليس كائن MyArray
:
class MyArray extends Array {
static get [Symbol.species]() { return Array; }
}
var a = new MyArray(1,2,3);
var mapped = a.map(x => x * x);
console.log(mapped instanceof MyArray); // false
console.log(mapped instanceof Array); // true
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | 51 | 41 | غير مدعومة | 38 | 10 |
على النقيض من متصفح IE، يدعم متصفح Edge هذه الميزة في الإصدار 14.
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).