Array.prototype[@@unscopables]
La propiedad de símbolo @@unscopable
contiene nombres de propiedad que no se incluyeron en el estándar ECMAScript antes de la versión ES2015. Estas propiedades se excluyen de los enlaces de declaración with
.
Sintaxis
arr[Symbol.unscopables]
Descripción
Las propiedades de matriz predeterminadas que se excluyen de los enlaces with
son: copyWithin, entries, fill, find, findIndex, includes, keys, y values.
Consulte Symbol.unscopables
para saber cómo configurar unscopables
para sus propios objetos.
Atributos de la propiedad Array.prototype[@@unscopables] | |
---|---|
Sobrescribir | No |
Numerable | No |
Configurable | Sí |
Ejemplos
El siguiente código funciona bien en ES5 y más abajo. Sin embargo, en ECMAScript 2015 y posterior, se introdujo el método Array.prototype.keys()
. Eso significa que dentro de los entornos with
, las "keys" ahora serían el método y no la variable. Aquí es donde entra en juego la propiedad de símbolo @@unscopables
Array.prototype[@@unscopables]
incorporada y evita que algunos de los métodos Array tengan un alcance en la instrucción with
.
var keys = [];
with (Array.prototype) {
keys.push("something");
}
Object.keys(Array.prototype[Symbol.unscopables]);
// ["copyWithin", "entries", "fill", "find", "findIndex",
// "includes", "keys", "values"]
Especificaciones
Specification |
---|
ECMAScript Language Specification # sec-array.prototype-%symbol.unscopables% |
Compatibilidad con navegadores
BCD tables only load in the browser