Symbol.species
Le symbole Symbol.species
correspond à une fonction utilisée comme constructeur pour créer des objets dérivés.
Exemple interactif
Description
L'accesseur species
permettent aux classes filles de surcharger le constructeur par défaut des objets.
Attributs de Symbol.species |
|
---|---|
Écrivable | Non |
Énumérable | Non |
Configurable | Non |
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
Specification |
---|
ECMAScript Language Specification # sec-symbol.species |
Compatibilité des navigateurs
BCD tables only load in the browser