diff options
Diffstat (limited to 'files/it/web/javascript/reference/global_objects/object/issealed/index.html')
-rw-r--r-- | files/it/web/javascript/reference/global_objects/object/issealed/index.html | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/files/it/web/javascript/reference/global_objects/object/issealed/index.html b/files/it/web/javascript/reference/global_objects/object/issealed/index.html new file mode 100644 index 0000000000..d3bdf1b76b --- /dev/null +++ b/files/it/web/javascript/reference/global_objects/object/issealed/index.html @@ -0,0 +1,146 @@ +--- +title: Object.isSealed() +slug: Web/JavaScript/Reference/Global_Objects/Object/isSealed +tags: + - ECMAScript 5 + - Function + - Italian + - Italiano + - JavaScript + - JavaScript 1.8.5 + - Method + - Object + - Oggetto + - funzione + - metodo +translation_of: Web/JavaScript/Reference/Global_Objects/Object/isSealed +--- +<div>{{JSRef}}</div> + +<p>Il metodo <code><strong>Object.isSealed()</strong></code> determina se un oggetto è sigillato.</p> + +<div>{{EmbedInteractiveExample("pages/js/object-issealed.html")}}</div> + +<p class="hidden">Il codice sorgente per questo esempio interattivo si trova in una repository di GitHub. Se vuoi contribuire al progetto degli esempi interattivi, puoi clonare <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> ed inviarci una pull request.</p> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox"><code>Object.isSealed(<var>obj</var>)</code></pre> + +<h3 id="Parametri">Parametri</h3> + +<dl> + <dt><code>obj</code></dt> + <dd>L'oggetto da controllare.</dd> +</dl> + +<h3 id="Valore_di_ritorno">Valore di ritorno</h3> + +<p>Un {{jsxref("Boolean")}} che indica se l'oggetto è congelato oppure no.</p> + +<h2 id="Descrizione">Descrizione</h2> + +<p>Ritorna <code>true</code> se l'oggetto è sigillato, altrimenti <code>false</code>. Un oggetto è sigillato se non è {{jsxref("Object.isExtensible", "estensibile", "", 1)}} e se tutte le sue proprietà sono non-configurabili e non possono essere rimosse (ma non necessariamente non-sovrascrivibili).</p> + +<h2 id="Esempi">Esempi</h2> + +<pre class="brush: js">// 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à) +</pre> + +<h2 id="Note">Note</h2> + +<p>In ES5, se l'argomento di questo metodo non è un'oggetto, allora verrà generato un {{jsxref("TypeError")}}. In ES2015, un argomento che non è un oggetto verrà trattato come se fosse un normale oggetto già sigillato, e perciò verrà semplicemente ritornato <code>true</code>.</p> + +<pre class="brush: js">Object.isSealed(1); +// TypeError: 1 non è un oggetto (codice in ES5) + +Object.isSealed(1); +// true (codice in ES2015) +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2.3.11', 'Object.isSealed')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definizione iniziale. Implementato in JavaScript 1.8.5.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object.issealed', 'Object.isSealed')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-object.issealed', 'Object.isSealed')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilità_con_i_browser">Compatibilità con i browser</h2> + +<div> +<div class="hidden">Il codice sorgente per questo esempio interattivo si trova in una repository di GitHub. Se vuoi contribuire al progetto degli esempi interattivi, puoi clonare <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> ed inviarci una pull request.</div> + +<p>{{Compat("javascript.builtins.Object.isSealed")}}</p> +</div> + +<h2 id="Vedi_anche">Vedi anche</h2> + +<ul> + <li>{{jsxref("Object.seal()")}}</li> + <li>{{jsxref("Object.preventExtensions()")}}</li> + <li>{{jsxref("Object.isExtensible()")}}</li> + <li>{{jsxref("Object.freeze()")}}</li> + <li>{{jsxref("Object.isFrozen()")}}</li> +</ul> |