الفرق بين المراجعتين لصفحة: «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).