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

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

Especificación Estado Comentario
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Array.prototype[@@unscopables]' en esta especificación.
Standard Definición inicial.
ECMAScript (ECMA-262)
La definición de 'Array.prototype[@@unscopables]' en esta especificación.
Living Standard  

Compatibilidad con navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung InternetNode.js
@@unscopablesChrome Soporte completo 38Edge Soporte completo 12Firefox Soporte completo 48IE Sin soporte NoOpera Soporte completo 25Safari Soporte completo 10WebView Android Soporte completo 38Chrome Android Soporte completo 38Firefox Android Soporte completo 48Opera Android Soporte completo 25Safari iOS Soporte completo 10Samsung Internet Android Soporte completo 3.0nodejs Soporte completo 0.12

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte

Ver también