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.
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
// 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
.
Object.isExtensible(1);
// TypeError: 1 is not an object (ES5 code)
Object.isExtensible(1);
// false (ES2015 code)
Especificações
Specification |
---|
ECMAScript Language Specification # sec-object.isextensible |
Compatibilidade com navegadores
BCD tables only load in the browser