Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

El método Object.isFrozen() determina si un objeto está congelado.

Síntaxis

Object.isFrozen(obj)

Parametros

obj
El objeto a ser revisado.

Descripción

Un objeto está congelado si y solo si no es extendible, todas sus propiedades son no-configurables, y todos los datos de sus propiedades no tienen capacidad de escritura.

Ejemplos

// Un objeto nuevo es extendible, así que no está congelado.
Object.isFrozen({}); // === false

// Un objeto vacio el cuál no es extendible está congelado vacuamente.
var vacuouslyFrozen = Object.preventExtensions({});
Object.isFrozen(vacuouslyFrozen); // === true

// Un objeto nuevo con una propiedad es tabién extendible, ergo no congelado.
var oneProp = { p: 42 };
Object.isFrozen(oneProp); // === false

// Prevenir la extensión de un objeto no lo congela.
// porque la propiedad sigue teniendo capacidad de configuración (y capacidad de escritura).
Object.preventExtensions(oneProp);
Object.isFrozen(oneProp); // === false

// ...pero eliminar la propiedad congela el objeto vacuamente.
delete oneProp.p;
Object.isFrozen(oneProp); // === true

// Un ojbeto no-extendible con una propiedad sin capacidad de escritura pero si con capacidad de configuración no está congelado.
var nonWritable = { e: 'plep' };
Object.preventExtensions(nonWritable);
Object.defineProperty(nonWritable, 'e', { writable: false }); // Le quita la capacidad de escritura.
Object.isFrozen(nonWritable); // === false

// Quitarle la capacidad de configuración a una propiedad congela el objeto.
Object.defineProperty(nonWritable, 'e', { configurable: false }); // le quita la capacidad de configuración.
Object.isFrozen(nonWritable); // === true

// Un objeto no-extendible con una propiedad sin capacidad de configuración pero con capacidad de escritura no congela a dicho objeto.
var nonConfigurable = { release: 'the kraken!' };
Object.preventExtensions(nonConfigurable);
Object.defineProperty(nonConfigurable, 'release', { configurable: false });
Object.isFrozen(nonConfigurable); // === false

// Quitarle la capacidad de configuración a esa propiedad congela el objeto.
Object.defineProperty(nonConfigurable, 'release', { writable: false });
Object.isFrozen(nonConfigurable); // === true

// A non-extensible object with a configurable accessor property isn't frozen.
var accessor = { get food() { return 'yum'; } };
Object.preventExtensions(accessor);
Object.isFrozen(accessor); // === false

// ...but make that property non-configurable and it becomes frozen.
Object.defineProperty(accessor, 'food', { configurable: false });
Object.isFrozen(accessor); // === true

// But the easiest way for an object to be frozen is if Object.freeze has been called on it.
var frozen = { 1: 81 };
Object.isFrozen(frozen); // === false
Object.freeze(frozen);
Object.isFrozen(frozen); // === true

// By definition, a frozen object is non-extensible.
Object.isExtensible(frozen); // === false

// Also by definition, a frozen object is sealed.
Object.isSealed(frozen); // === true

Notas

En ES5, si el argumento pasado a éste método no es un objeto (primitivo), entonces causará un TypeError. En ES6, un no-objeto pasado como argumento será tratado como si fuera un objeto ordinario congelado, simplemente regresa true.

Object.isFrozen(1);
// TypeError: 1 is not an object (ES5 code)

Object.isFrozen(1);
// true                          (ES6 code)

Especificaciones

Especificación Estado Comentario
ECMAScript 5.1 (ECMA-262)
La definición de 'Object.isFrozen' en esta especificación.
Standard

Definición inicial. Implementada en JavaScript 1.8.5.

ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Object.isFrozen' en esta especificación.
Standard  

Compatibilidad con navegadores

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Caracteristicas Chrome Firefox (Gecko) Internet Explorer Opera Safari
Soporte básico 6 4.0 (2.0) 9 12 5.1
Caracteristicas Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Soporte básico ? ? ? ? ? ?

Ver también

Etiquetas y colaboradores del documento

Colaboradores en esta página: mishelashala
Última actualización por: mishelashala,