Object.isExtensible()

El método Object.isExtensible() determina si un objeto es extendible (si puede tener propiedades nuevas agregadas a éste).

Síntaxis

Object.isExtensible(obj)

Parametros

obj

El objeto a ser revisado.

Descripción

Los objetos son extendibles por defecto: ellos pueden tener propiedades nuevas agregadas a ellos, y (en motores que soportan Object.prototype.__proto__ Obsoleto la propiedad __proto__) pueden ser modificados. Un objeto puede ser marcado como no extendible usando Object.preventExtensions(), Object.seal(), o Object.freeze().

Ejemplos

js
// Los Objetos nuevos son extendibles (por defecto).
var empty = {};
Object.isExtensible(empty); // === true

// ...pero eso puede cambiar.
Object.preventExtensions(empty);
Object.isExtensible(empty); // === false

// Objetos sellados por definición son no-extendibles.
var sealed = Object.seal({});
Object.isExtensible(sealed); // === false

// Objetos congelados también por definición son no-extendibles.
var frozen = Object.freeze({});
Object.isExtensible(frozen); // === false

Notas

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

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

Object.isExtensible(1);
// false                         (ES6 code)

Especificaciones

Specification
ECMAScript Language Specification
# sec-object.isextensible

Compatibilidad con navegadores

BCD tables only load in the browser

Ver también