Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Object.isExtensible()
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthodeObject.isExtensible() permet de déterminer si un objet est extensible (c'est-à-dire qu'on peut lui ajouter de nouvelles propriétés).
Dans cet article
Exemple interactif
const object1 = {};console.log(Object.isExtensible(object1));// Expected output: trueObject.preventExtensions(object1);console.log(Object.isExtensible(object1));// Expected output: falseSyntaxe
Object.isExtensible(obj);Paramètres
objL'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 supportentObject.prototype.__proto__Obsolète, leur propriété __proto__ peut être modifiée). Un objet peut devenir non-extensible en utilisant les méthodesObject.preventExtensions(),Object.seal(), ouObject.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é); // falseNotes
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 exceptionTypeError. Pour ES2015, un argument qui n'est pas un objet sera traité comme un objet ordinaire non-extensible, la méthode renverrafalse.
Object.isExtensible(1);// TypeError: 1 n'est pas un objet (code ES5)Object.isExtensible(1);// false (code ES2015)Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.isextensible> |