Object : méthode statique isSealed()
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.isSealed() permet de déterminer si un objet est scellé.
Exemple interactif
const object = {
toto: 42,
};
console.log(Object.isSealed(object));
// Résultat attendu : false
Object.seal(object);
console.log(Object.isSealed(object));
// Résultat attendu : true
Syntaxe
Object.isSealed(obj)
Paramètres
obj-
L'objet dont on souhaite savoir s'il est scellé.
Valeur de retour
Un booléen (Boolean) indiquant si l'objet est scellé ou non.
Description
Retourne true si l'objet est scellé, false sinon. Un objet est scellé s'il n'est pas extensible et si toutes ses propriétés ne sont pas configurables et donc pas supprimables (mais pas nécessairement non modifiables).
Exemples
>Utiliser Object.isSealed()
// Les objets ne sont pas scellés par défaut.
const vide = {};
Object.isSealed(vide); // false
// Si un objet vide est rendu non-extensible,
// il est scellé
Object.preventExtensions(vide);
Object.isSealed(vide); // true
// Ce n'est pas le cas d'un objet non vide,
// sauf si toutes ses propriétés sont non configurables.
const hasProp = { fee: "fie foe fum" };
Object.preventExtensions(hasProp);
Object.isSealed(hasProp); // false
// Mais si vous les rendez toutes non configurables,
// l'objet devient scellé.
Object.defineProperty(hasProp, "fee", {
configurable: false,
});
Object.isSealed(hasProp); // true
// Le moyen le plus simple de sceller un objet, bien sûr,
// est Object.seal.
const scelle = {};
Object.seal(scelle);
Object.isSealed(scelle); // true
// Un objet scellé est, par définition, non-extensible.
Object.isExtensible(scelle); // false
// Un objet scellé peut être gelé,
// mais ce n'est pas obligatoire.
Object.isFrozen(scelle); // true
// (toutes les propriétés également non modifiables)
const s2 = Object.seal({ p: 3 });
Object.isFrozen(s2); // false
// ('p' est toujours modifiable)
const s3 = Object.seal({
get p() {
return 0;
},
});
Object.isFrozen(s3); // true
// (seule la possibilité de configuration compte pour les propriétés d'accès)
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.isSealed(1);
// TypeError: 1 n'est pas un objet (code ES5)
Object.isSealed(1);
// true (code ES2015)
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.issealed> |
Compatibilité des navigateurs
Voir aussi
- La méthode statique
Object.seal() - La méthode statique
Object.preventExtensions() - La méthode statique
Object.isExtensible() - La méthode statique
Object.freeze() - La méthode statique
Object.isFrozen()