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).