Symbol.species
El símbolo conocido como Symbol.species
especifica una propiedad con valor de función que la función constructora utiliza para crear objetos derivados.
Pruébalo
Descripción
La propiedad de acceso species
permite a las subclases anular el constructor por defecto de los objetos.
Atributos de la propiedad Symbol.species |
|
---|---|
Sobrescribir | No |
Numerable | No |
Configurable | No |
Ejemplos
Usando species
Es posible que quieras devolver objetos Array
en tu clase array derivada MyArray
. Por ejemplo, al utilizar métodos como map()
que devuelven el constructor por defecto, quieres que estos métodos devuelvan un objeto Array
padre, en lugar del objeto MyArray
. El símbolo species
te permite hacer esto:
js
class MyArray extends Array {
// Sobrescribir especies al constructor de la matriz Array
static get [Symbol.species]() {
return Array;
}
}
let a = new MyArray(1, 2, 3);
let mapped = a.map((x) => x * x);
console.log(mapped instanceof MyArray); // false
console.log(mapped instanceof Array); // true
Especificaciones
Specification |
---|
ECMAScript Language Specification # sec-symbol.species |
Compatibilidad con navegadores
BCD tables only load in the browser