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).

Syntaxe

Object.isExtensible(obj)

Paramètres

obj
L'objet dont on souhaite vérifier s'il est extensible.

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 ES6, 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 ES6)

Spécifications

Spécification Statut 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 2016 Draft (7th Edition, ECMA-262)
La définition de 'Object.isExtensible' dans cette spécification.
Projet  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple 6 4.0 (2.0) 9 12 5.1
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple ? ? ? ? ? ?

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,