La propriété symbol @@unscopable
contient les noms des propriétés qui ne faisait pas partie du standard ECMAScript avant ES2015 (ES6). Ces propriétés sont exclues lors de liaisons effectuée via l'instruction with
.
Syntaxe
arr[Symbol.unscopables]
Description
Les propriétés natives d'un objet Array
qui sont exclues lorsqu'on utilise with
sont copyWithin
, entries
, fill
, find
, findIndex
, includes
, keys
et values
.
Voir la page sur le symbole Symbol.unscopables
pour manipuler unscopables
sur des objets personnalisés.
Attributs de Array.prototype[@@unscopables] |
|
---|---|
Écrivable | Non |
Énumérable | Non |
Configurable | Oui |
Exemples
Le code qui suit fonctionne bien pour ES5 et les versions antérieures. En revanche, pour ECMAScript 2015 (ES6) et les versions ultérieures où la méthode Array.prototype.keys()
existe, lorsqu'on utilise un environnement créé avec with
, "keys"
serait désormais la méthode et non la variable. C'est là que le symbole natif @@unscopables
Array.prototype[@@unscopables]
intervient et empêche d'explorer ces méthodes avec with
.
var keys = []; with(Array.prototype) { keys.push("something"); } Object.keys(Array.prototype[Symbol.unscopables]); // ["copyWithin", "entries", "fill", "find", "findIndex", // "includes", "keys", "values"]
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Array.prototype[@@unscopables]' dans cette spécification. |
Standard | Définition initiale. |
ECMAScript Latest Draft (ECMA-262) La définition de 'Array.prototype[@@unscopables]' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Ordinateur | Mobile | Serveur | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@unscopables | Chrome Support complet 38 | Edge Support complet 12 | Firefox Support complet 48 | IE Aucun support Non | Opera Support complet 25 | Safari ? | WebView Android Support complet 38 | Chrome Android Support complet 38 | Firefox Android Support complet 48 | Opera Android Support complet 25 | Safari iOS ? | Samsung Internet Android Support complet 3.0 | nodejs Support complet 0.12 |
Légende
- Support complet
- Support complet
- Aucun support
- Aucun support
- Compatibilité inconnue
- Compatibilité inconnue