Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Le symbole connu Symbol.unscopables est utilisé afin de définir les noms des propriétés propres et héritées qui sont exclues de l'objet lors de l'utilisation de with sur l'objet en question.
Le symbole @@unscopables (Symbol.unscopables) peut être défini sur n'importe quel objet afin de ne pas exposer certaines propriétés lors des liaisons lexicales avec with. Note : en mode strict, l'instruction with n'est pas disponible et ce symbole est donc probablement moins nécessaire.
En définissant une propriété comme true dans un objet unscopables, cela exclura la propriété de la portée lexicale. En définissant une propriété comme false, celle-ci pourra faire partie de la portée lexicale et être manipulée dans un bloc with.
| Écrivable | Non |
| Énumérable | Non |
| Configurable | Non |
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.
On peut également manipuler unscopables sur ses propres objets :
| ECMAScript® 2027 Language Specification # sec-symbol.unscopables |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 17 févr. 2025 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.