Array.prototype[@@unscopables]

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 Latest Draft (ECMA-262)
Die Definition von 'Array.prototype[@@unscopables]' in dieser Spezifikation.
Entwurf  

Browserkompatibilität

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid WebviewChrome für AndroidFirefox für AndroidOpera für AndroidSafari auf iOSSamsung InternetNode.js
@@unscopablesChrome Vollständige Unterstützung 38Edge Vollständige Unterstützung 12Firefox Vollständige Unterstützung 48IE Keine Unterstützung NeinOpera Vollständige Unterstützung 25Safari ? WebView Android Vollständige Unterstützung 38Chrome Android Vollständige Unterstützung 38Firefox Android Vollständige Unterstützung 48Opera Android Vollständige Unterstützung 25Safari iOS ? Samsung Internet Android Vollständige Unterstützung 3.0nodejs Vollständige Unterstützung 0.12

Legende

Vollständige Unterstützung  
Vollständige Unterstützung
Keine Unterstützung  
Keine Unterstützung
Kompatibilität unbekannt  
Kompatibilität unbekannt

Siehe auch