Symbol.species

من موسوعة حسوب

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

مصادر ومواصفات