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
// 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
.
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