Baseline Widely available
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.
class Array1 extends Array {
static get [Symbol.species]() {
return Array;
}
}
const a = new Array1(1, 2, 3);
const mapped = a.map((x) => x * x);
console.log(mapped instanceof Array1);
// Expected output: false
console.log(mapped instanceof Array);
// Expected output: true
Descripción
La propiedad de acceso species
permite a las subclases anular el constructor por defecto de los objetos.
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:
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 Compatibilidad con navegadores Véase también
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4