MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Le symbole Symbol.species correspond à une fonction utilisée comme constructeur pour créer des objets dérivés.

Attributs de Symbol.species
Écrivable Non
Énumérable Non
Configurable Non

Description

L'accesseur species permettent aux classes filles de surcharger le constructeur par défaut des objets.

Exemples

Dans certains cas, vous pouvez avoir besoin de renvoyer Array pour les objets de votre classe dérivée MonArray. Cela permet par exemple d'utiliser le constructeur par défaut lors d'un appel à map(). De cette façon, ces méthodes renverront un objet Array plutôt qu'un objet MonArray. Grâce au symbole species, vous pouvez donc faire :

class MonArray extends Array {
  // On surcharge species avec le constructeur parent Array
  static get [Symbol.species]() { return Array; }
}
var a = new MonArray(1,2,3);
var mapped = a.map(x => x * x);

console.log(mapped instanceof MonArray); // false
console.log(mapped instanceof Array);    // true

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Symbol.species' dans cette spécification.
Standard Définition initiale.
ECMAScript Latest Draft (ECMA-262)
La définition de 'Symbol.species' dans cette spécification.
Projet  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Edge Internet Explorer Opera Safari
Support simple 51 41 (41) (Oui) Pas de support 38 10
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) Edge IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support 5 41.0 (41) (Oui) Pas de support 38 10

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,