Object : méthode statique isExtensible()
Baseline
Large disponibilité
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éthode statique Object.isExtensible() détermine si un objet est extensible (c'est-à-dire s'il peut avoir de nouvelles propriétés ajoutées).
Exemple interactif
const object = {};
console.log(Object.isExtensible(object));
// Résultat attendu : true
Object.preventExtensions(object);
console.log(Object.isExtensible(object));
// Résultat attendu : false
Syntaxe
Object.isExtensible(obj)
Paramètres
obj-
L'objet dont on souhaite vérifier s'il est extensible.
Valeur de retour
Un booléen (Boolean) qui indique si oui ou non l'objet passé en argument peut être étendu.
Description
Les objets sont extensibles par défaut : on peut leur ajouter de nouvelles propriétés, et leur [[Prototype]] peut être réassigné. Un objet peut être marqué comme non-extensible en utilisant l'une des méthodes Object.preventExtensions(), Object.seal(), Object.freeze(), ou Reflect.preventExtensions().
Exemples
>Utiliser Object.isExtensible()
// Les nouveaux objets sont extensibles.
const vide = {};
Object.isExtensible(vide); // true
// Ils peuvent être rendus non-extensibles.
Object.preventExtensions(vide);
Object.isExtensible(vide); // false
// Les objets scellés sont, par définition, non-extensibles.
const scelle = Object.seal({});
Object.isExtensible(scelle); // false
// Les objets gelés sont également, par définition, non-extensibles.
const gele = Object.freeze({});
Object.isExtensible(gele); // false
Argument d'une valeur primitive
Dans ES5, si l'argument passé à cette méthode n'est pas un objet (un primitif), cela entraîne une exception TypeError. Dans ES2015, elle retourne false sans aucune erreur si un argument non-objet est passé, puisque les primitifs sont, par définition, immuables.
Object.isExtensible(1);
// TypeError: 1 n'est pas un objet (code ES5)
Object.isExtensible(1);
// false (code ES2015)
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.isextensible> |
Compatibilité des navigateurs
Voir aussi
- La méthode statique
Object.preventExtensions() - La méthode statique
Object.seal() - La méthode statique
Object.isSealed() - La méthode statique
Object.freeze() - La méthode statique
Object.isFrozen() - La méthode statique
Reflect.isExtensible()