Object.isExtensible()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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