Array.prototype[@@unscopables]

Esta tradução está incompleta. Ajude a traduzir este artigo em inglês

A propriedade de símbolo @@unscopable contém nomes de propriedades que não foram incluídos no padrão ECMAScript antes da versão ES2015. Essas propriedades são excluídas do statement bindings with

Sintaxe

arr[Symbol.unscopables]

Descrição

As propriedades padrão de array que são excluídas dos bindings with são: copyWithin, entries, fill, find, findIndex, includes, keys, e values.

Veja Symbol.unscopables para saber como definir unscopables para seus objetos.

Property attributes of Array.prototype[@@unscopables]
Writable no
Enumerable no
Configurable yes

Exemplos

O código a seguir funciona bem no ES5 e abaixo. No entanto, no ECMAScript 2015 e posterior, o método Array.prototype.keys() foi introduzido. Isso significa que dentro de ambientes with, as "keys" seriam agora o método e não a variável. É aqui que a propriedade de símbolo @@unscopables Array.prototype[@@unscopables] entra em ação e impede que alguns métodos do Array estejam sendo definidos na instrução with.

var keys = [];

with (Array.prototype) {
  keys.push('alguma coisa');
}

Object.keys(Array.prototype[Symbol.unscopables]); 
// ["copyWithin", "entries", "fill", "find", "findIndex", 
//  "includes", "keys", "values"]

Especificações

Especificação Status Comentário
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype[@@unscopables]' in that specification.
Padrão Initial definition.
ECMAScript (ECMA-262)
The definition of 'Array.prototype[@@unscopables]' in that specification.
Padrão em tempo real  

Compatibilidade de navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
@@unscopablesChrome Full support 38Edge Full support 12Firefox Full support 48IE No support NoOpera Full support 25Safari Full support 10WebView Android Full support 38Chrome Android Full support 38Firefox Android Full support 48Opera Android Full support 25Safari iOS Full support 10Samsung Internet Android Full support 3.0nodejs Full support 0.12

Legend

Full support  
Full support
No support  
No support

Veja também