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.isSealed()
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.isSealed() permet de déterminer si un objet est scellé.
Dans cet article
Exemple interactif
const object1 = { property1: 42,};console.log(Object.isSealed(object1));// Expected output: falseObject.seal(object1);console.log(Object.isSealed(object1));// Expected output: trueSyntaxe
Object.isSealed(obj);Paramètres
objL'objet dont on souhaite savoir s'il est scellé.
Valeur de retour
Un booléen indiquant si l'objet est scellé ou non.
Description
Renvoietrue si l'objet est scellé,false sinon. Un objet scellé est un objet qui n'est pasextensible et dont toutes les propriétés sont non-configurables (on ne peut donc pas les retirer, en revanche on peut avoir un droit de modification).
Exemples
// Par défaut, les objets ne sont pas scellésvar vide = {};Object.isSealed(vide); // false// Si un objet vide est rendu non-extensible,// il est scelléObject.preventExtensions(vide);Object.isSealed(vide); // true// Ce qui n'est pas vrai pour un objet non-vide,// sauf si toutes ses propriétés sont non-configurablesvar avecPropriétés = { pif: "paf pouf" };Object.preventExtensions(avecPropriétés);Object.isSealed(avecPropriétés); // false// Si on rend les propriétés non configurables,// l'objet est scelléObject.defineProperty(avecPropriétés, "pif", { configurable: false });Object.isSealed(avecPropriétés); // true// La méthode la plus simple est d'utiliser Object.seal.var scellé = {};Object.seal(scellé);Object.isSealed(scellé); // true// Un objet scellé est, par définition, non-extensibleObject.isExtensible(scellé); // false// Un objet scellé peut être gelé mais ce n'est pas// nécessaire. gelé signifie que les propriétés ne// peuvent pas être modifiéesObject.isFrozen(scellé); // truevar s2 = Object.seal({ p: 3 });Object.isFrozen(s2); // false ("p" est toujours modifiable)var s3 = Object.seal({ get p() { return 0; },});// pour les accesseurs, seule l'accès en// configuration est importantObject.isFrozen(s3); // trueNotes
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, une valeur qui n'est pas un objet sera traitée comme si c'était un objet scellé et la méthode renverratrue.
Object.isSealed(1);// TypeError: 1 is not an object (ES5 code)Object.isSealed(1);// true (ES2015 code)Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.issealed> |