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.

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 Latest Draft (ECMA-262)
La définition de 'Object.isExtensible' dans cette spécification.
Projet  

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
Support simpleChrome Support complet 6Edge Support complet OuiFirefox Support complet 4IE Support complet 9Opera Support complet 12Safari Support complet 5.1WebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet OuiSafari iOS Support complet OuiSamsung Internet Android Support complet Ouinodejs Support complet Oui

Légende

Support complet  
Support complet

Voir aussi

Étiquettes et contributeurs liés au document

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