Die @@unscopable
Symbol Eigenschaft enthält Namen von Eigenschaften, welche vor der ES2015 Version nicht im ECMAScript Standard waren. Diese Eigenschaften werden bei with
Statement Bindungen ignoriert.
Syntax
arr[Symbol.unscopables]
Beschreibung
Der Standard Array Eigenschaften, die von den with
Bindungen ausgenommen werden, sind: copyWithin
, entries
, fill
, find
, findIndex
, includes
, keys
, und values
.
Siehe Symbol.unscopables
für das setzten von unscopables
für eigene Objekte
Eigenschaftsattribute von Array.prototype[@@unscopables] |
|
---|---|
Schreibbar | nein |
Aufzählbar | nein |
Konfigurierbar | ja |
Beispiele
Der Folgende Quelltext funktioniert in ES5 und niedriger. Jedoch wurde in ECMAScript 2015 und Später die Array.prototype.keys()
eingeführt. Das bedeutet, dass in with
Umgebungen "keys" jetzt eine Methode und keine Variable ist. Hier kommt die eingebaute @@unscopables
Array.prototype[@@unscopables]
Symboleigenschaft ins Spiel und verhindert, dass einige der Array Methoden in einer with
Anweisung gescoped werden.
var keys = [];
with (Array.prototype) {
keys.push('something');
}
Object.keys(Array.prototype[Symbol.unscopables]);
// ["copyWithin", "entries", "fill", "find", "findIndex",
// "includes", "keys", "values"]
Spezifikationen
Spezifikation | Status | Komment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Array.prototype[@@unscopables]' in dieser Spezifikation. |
Standard | Initiale Definition. |
ECMAScript (ECMA-262) Die Definition von 'Array.prototype[@@unscopables]' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser