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.
O símbolo Symbol.species
especifica uma propriedade valor-função que a função construtora usa para criar objetos derivados.
Experimente
Descrição
A propriedade acessora de espécies permite que subclasses substituam o construtor padrão para objetos.
Property attributes of Symbol.species | |
---|---|
Writable | no |
Enumerable | no |
Configurable | no |
Exemplos
Usando espécies
Você pode querer que retorne objetos Array
em sua class derivada de array MyArray
. Por exemplo, quando usar métodos tais como map()
que retorna o construtor padrão, você quer que esses métodos retornem um objeto Array
pai, em vez do objeto MyArray
. Esses símbolos espécies permitem que você fala isso:
class MyArray extends Array {
// Substitui espécies para a Array pai construtora
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
Especificações
Specification |
---|
ECMAScript Language Specification # sec-symbol.species |
Compatibilidade com navegadores
BCD tables only load in the browser