--- title: Object.isSealed() slug: Web/JavaScript/Reference/Global_Objects/Object/isSealed tags: - ECMAScript5 - JavaScript - JavaScript 1.8.5 - Objeto - metodo translation_of: Web/JavaScript/Reference/Global_Objects/Object/isSealed original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/isSealed ---
El método Object.isSealed()
si el objeto está sellado.
Object.isSealed(obj)
obj
Un {{jsxref("Boolean")}} indicando si el objeto dado está sellado.
Devuelve true
si el objeto está sellado, de lo contrario devuelve false
. Un objeto está sellado si no es {{jsxref("Object.isExtensible", "extensible", "", 1)}} y si todas sus propiedades no se pueden configurar y por lo tanto no removibles (pero no necesariamente no modificables).
// Los objetos no están sellados por defecto var empty = {}; Object.isSealed(empty); // === false // Si haces un objeto vacío no extendible, // está vacíamente sellado Object.preventExtensions(empty); Object.isSealed(empty); // === true // Lo mismo no es vedad sobre un objeto no vacío, // a menos que sus propiedades son todas no configurables. var hasProp = { fee: 'fie foe fum' }; Object.preventExtensions(hasProp); Object.isSealed(hasProp); // === false // Pero hazlas todas no configurables // y el objeto se vuelve sellado. Object.defineProperty(hasProp, 'fee', { configurable: false }); Object.isSealed(hasProp); // === true // La manerá más facil de sellar un objeto, por supuesto, // es Object.seal var sealed = {}; Object.seal(sealed); Object.isSealed(sealed); // === true // Un objeto sellado es, por definición, no extendible. Object.isExtensible(sealed); // === false // Un objeto sellado puodría estar congelado, // pero no tiene que ser. Object.isFrozen(sealed); // === true // (Todas las propiedades también no modificables) var s2 = Object.seal({ p: 3 }); Object.isFrozen(s2); // === false // ('p' todavía es modificable) var s3 = Object.seal({ get p() { return 0; } }); Object.isFrozen(s3); // === true // (solo la configurabilidad es importante para las propiedades de acceso)
En ES5, si el argumento de este método no es un objeto (primitivo), entonces causará un
{{jsxref("TypeError")}}. En ES2015, un argumento que no sea un objeto será tratado como si fuera un objeto sellado ordinario, simplemente devuelve true
.
Object.isSealed(1); // TypeError: 1 no es un objeto (ES5 code) Object.isSealed(1); // true (ES2015 code)
Specification | Status | Comment |
---|---|---|
{{SpecName('ES5.1', '#sec-15.2.3.11', 'Object.isSealed')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementada en JavaScript 1.8.5. |
{{SpecName('ES6', '#sec-object.issealed', 'Object.isSealed')}} | {{Spec2('ES6')}} | |
{{SpecName('ESDraft', '#sec-object.issealed', 'Object.isSealed')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.Object.isSealed")}}