Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

O método Object.isSealed() determina se um objeto está selado.

Sintaxe

Object.isSealed(obj)

Parâmetros

obj
O objeto que deverá ser verificado.

Valor retornado

Um Boolean indicando se o objeto fornecido está ou não selado.

Descrição

Retorna true se o objeto está selado, senão false. Um objeto está selado se ele for "não extensible" e se todas as suas propriedades estão como "não configuráveis" e assim sendo "não removíveis" (mas não necessariamente "não escrevíveis").

Exemplos

// Objetos não são selados por padrão.
var empty = {};
Object.isSealed(empty); // === false

// Se você fizer um objeto não extensível vazio,
// ele estará vagamente selado.
Object.preventExtensions(empty);
Object.isSealed(empty); // === true

// O mesmo não é verdadeiro em um objeto "não vazio",
// a não ser que todas as suas propriedades sejam "não configuráveis".
var hasProp = { fee: 'fie foe fum' };
Object.preventExtensions(hasProp);
Object.isSealed(hasProp); // === false

// Mas torne-os todos "não configuráveis"
// e o objeto se tornará selado.
Object.defineProperty(hasProp, 'fee', {
  configurable: false
});
Object.isSealed(hasProp); // === true

// O jeito mais fácil de selar um objeto, com certeza,
// é Object.seal.
var sealed = {};
Object.seal(sealed);
Object.isSealed(sealed); // === true

// Um objeto selado é, por definição, não extensível.
Object.isExtensible(sealed); // === false

// Um objeto selado pode estar congelado,
// mas não precisa estar.
Object.isFrozen(sealed); // === true 
// (todas as propriedades também não escrevíveis)

var s2 = Object.seal({ p: 3 });
Object.isFrozen(s2); // === false 
// ('p' continua "escrevível")

var s3 = Object.seal({ get p() { return 0; } });
Object.isFrozen(s3); // === true
// (somente a configurabilidade importa nos assessores de propriedade)

Notas

No ES5, se o argumento para esse método não é um objeto (um primitivo), então ele irá causar um TypeError. No ES2015, um argumento que não seja objeto irá ser tratado como se fosse um objeto selado qualquer, simplesmente retornando true.

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

Object.isSealed(1);
// true                          (ES2015 code)

Especificações

Especificação Estado Comentário
ECMAScript 5.1 (ECMA-262)
The definition of 'Object.isSealed' in that specification.
Padrão Definição inicial. Implementado no JavaScript 1.8.5.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Object.isSealed' in that specification.
Padrão  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Object.isSealed' in that specification.
Rascunho  

Compatibilidade com Navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support 6Edge Full support YesFirefox Full support 4IE Full support 9Opera Full support 12Safari Full support 5.1WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

Veja também

Etiquetas do documento e colaboradores

Colaboradores desta página: HelcioMacedo
Última atualização por: HelcioMacedo,