Symbol.species
< JavaScript | Symbol
الرمز المعروف 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).