الفرق بين المراجعتين ل"JavaScript/Symbol/species"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
 
ط (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{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.

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