Il metodo Object.isSealed() determina se un oggetto è sigillato.

Syntax

Object.isSealed(obj)

Parametri

obj
L'oggetto da controllare.

Valore di ritorno

Un Boolean che indica se l'oggetto è congelato oppure no.

Descrizione

Ritorna true se l'oggetto è sigillato, altrimenti false. Un oggetto  è sigillato se non è estensibile e se tutte le sue proprietà sono non-configurabili e non possono essere rimosse (ma non necessariamente non-sovrascrivibili).

Esempi

// Gli oggetti non sono sigillati di default.
var empty = {};
Object.isSealed(empty); // === false

// Se rendi un oggetto vuoto non-estensibile,
// è vacuamente sigillato.
Object.preventExtensions(empty);
Object.isSealed(empty); // === true

// Lo stesso non si verifica con un oggetto non vuoto,
// a meno che le sue proprietà non sono tutte non-configurabili.
var hasProp = { fee: 'fie foe fum' };
Object.preventExtensions(hasProp);
Object.isSealed(hasProp); // === false

// Ma rendere tutte le sue proprietà non-configurabili
// rende l'oggetto effettivamente sigillato.
Object.defineProperty(hasProp, 'fee', {
  configurable: false
});
Object.isSealed(hasProp); // === true

// Il metodo più veloce per sigillare un oggetto, ovviamente,
// è il metodo Object.seal.
var sealed = {};
Object.seal(sealed);
Object.isSealed(sealed); // === true

// Un oggetto sigillato è, per definizione, non-estensibile.
Object.isExtensible(sealed); // === false

// Un oggetto sigillato può anche essere congelato,
// ma non è necessario.
Object.isFrozen(sealed); // === true 
// (tutte le proprietà sono anche non-sovrascrivibili)

var s2 = Object.seal({ p: 3 });
Object.isFrozen(s2); // === false 
// ('p' è comunque sovrascrivibile)

var s3 = Object.seal({ get p() { return 0; } });
Object.isFrozen(s3); // === true
// (per le proprietà "accessor", è importante solo la configurabilità della proprietà)

Note

In ES5, se l'argomento di questo metodo non è un'oggetto, allora verrà generato un TypeError. In ES2015, un argomento che non è un oggetto verrà trattato come se fosse un normale oggetto già sigillato, e perciò verrà semplicemente ritornato true.

Object.isSealed(1);
// TypeError: 1 non è un oggetto (codice in ES5)

Object.isSealed(1);
// true                          (codice in ES2015)

Specifications

Specification Status Comment
ECMAScript 5.1 (ECMA-262)
The definition of 'Object.isSealed' in that specification.
Standard Definizione iniziale. Implementato in JavaScript 1.8.5.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Object.isSealed' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Object.isSealed' in that specification.
Draft  

Compatibilità con i browser

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

Vedi anche

Tag del documento e collaboratori

Hanno collaborato alla realizzazione di questa pagina: DanielVip3
Ultima modifica di: DanielVip3,