Symbol.species
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
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