Object.isExtensible()
La méthode Object.isExtensible()
permet de déterminer si un objet est extensible (c'est-à-dire qu'on peut lui ajouter de nouvelles propriétés).
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Syntaxe
Object.isExtensible(obj)
Paramètres
obj
- L'objet dont on souhaite vérifier s'il est extensible.
Valeur de retour
Un booléen qui indique si oui ou non l'objet passé en argument peut être étendu.
Description
Par défaut, les objets sont extensibles, on peut leur ajouter de nouvelles propriétés (et pour les moteurs qui supportent __proto__
, leur propriété __proto__ peut être modifiée). Un objet peut devenir non-extensible en utilisant les méthodes Object.preventExtensions()
, Object.seal()
, ou Object.freeze()
.
Exemples
// Les nouveaux objets sont extensibles.
var vide = {};
Object.isExtensible(vide); // true
// ...mais on peut les rendre non-extensibles.
Object.preventExtensions(vide);
Object.isExtensible(vide); // false
// Les objets scellés sont, par définition, non-extensibles.
var scellé = Object.seal({});
Object.isExtensible(scellé); // false
// Les objets gelés sont également, par définition, non-extensibles.
var gelé = Object.freeze({});
Object.isExtensible(gelé); // false
Notes
Pour ES5, si l'argument passé à la méthode n'est pas un objet mais une valeur d'un autre type primitif, cela entraînera une exception TypeError
. Pour ES2015, un argument qui n'est pas un objet sera traité comme un objet ordinaire non-extensible, la méthode renverra false
.
Object.isExtensible(1);
// TypeError: 1 n'est pas un objet (code ES5)
Object.isExtensible(1);
// false (code ES2015)
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 5.1 (ECMA-262) La définition de 'Object.isExtensible' dans cette spécification. |
Standard | Définition initiale. Implémentée avec JavaScript 1.8.5. |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Object.isExtensible' dans cette spécification. |
Standard | |
ECMAScript (ECMA-262) La définition de 'Object.isExtensible' dans cette spécification. |
Standard évolutif |
Compatibilité des navigateurs
BCD tables only load in the browser