Object.isExtensible()
O método Object.isExtensible()
verifica se um objeto pode ser extendido (se é ou não possível adicinar novas propriedades).
Experimente
Sintaxe
Object.isExtensible(obj)
Parâmetros
obj
-
O objeto a ser verificado.
Valor de retorno
Um valor booleano (Boolean
) que indica se o objeto pode ser extendido.
Descrição
Objetos são extensíveis por padrão: novas propriedades podem ser adicionadas, e (em ambientes que suportam Object.prototype.__proto__
Deprecated
) a propriedade __proto__ pode ser modificada. Um objeto pode ser marcado como não extensível usando Object.preventExtensions()
, Object.seal()
, ou Object.freeze()
.
Exemplos
js
// Novos objetos podem ser extendidos.
var empty = {};
Object.isExtensible(empty); // === true
// ...mas isso pode mudar.
Object.preventExtensions(empty);
Object.isExtensible(empty); // === false
// Objetos selados, não podem ser extendidos.
var sealed = Object.seal({});
Object.isExtensible(sealed); // === false
// Objetos congelados também não podem ser extendidos.
var frozen = Object.freeze({});
Object.isExtensible(frozen); // === false
Notas
No ES5, se o argumento fornecido não for um objeto (um tipo primitivo), isso vai causar um erro do tipo TypeError
. No ES2015, um argumento que não é um objeto será tratado como um objeto não extensível, simplesmente retornando false
.
js
Object.isExtensible(1);
// TypeError: 1 is not an object (ES5 code)
Object.isExtensible(1);
// false (ES2015 code)
Especificações
Especificações | Status | Comentário |
---|---|---|
ECMAScript 5.1 (ECMA-262) The definition of 'Object.isExtensible' in that specification. |
Padrão | Initial definition. Implemented in JavaScript 1.8.5. |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Object.isExtensible' in that specification. |
Padrão | |
ECMAScript (ECMA-262) The definition of 'Object.isExtensible' in that specification. |
Padrão em tempo real |
Compatibilidade com navegadores
BCD tables only load in the browser