diff options
| author | Ryan Johnson <rjohnson@mozilla.com> | 2021-04-29 16:16:42 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-29 16:16:42 -0700 |
| commit | 95aca4b4d8fa62815d4bd412fff1a364f842814a (patch) | |
| tree | 5e57661720fe9058d5c7db637e764800b50f9060 /files/it/web/javascript/reference/global_objects/object/create/index.html | |
| parent | ee3b1c87e3c8e72ca130943eed260ad642246581 (diff) | |
| download | translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.gz translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.bz2 translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.zip | |
remove retired locales (#699)
Diffstat (limited to 'files/it/web/javascript/reference/global_objects/object/create/index.html')
| -rw-r--r-- | files/it/web/javascript/reference/global_objects/object/create/index.html | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/files/it/web/javascript/reference/global_objects/object/create/index.html b/files/it/web/javascript/reference/global_objects/object/create/index.html deleted file mode 100644 index d2b020b955..0000000000 --- a/files/it/web/javascript/reference/global_objects/object/create/index.html +++ /dev/null @@ -1,234 +0,0 @@ ---- -title: Object.create() -slug: Web/JavaScript/Reference/Global_Objects/Object/create -tags: - - Creazione - - Oggetto - - Prototipo - - metodo -translation_of: Web/JavaScript/Reference/Global_Objects/Object/create ---- -<div> - {{JSRef("Global_Objects", "Object")}}</div> -<h2 id="Summary" name="Summary">Sommario</h2> -<p>Il metodo <code><strong>Object.create()</strong></code> crea un nuovo oggetto a partire dall'oggetto prototipo e dalle proprietà specificati.</p> -<h2 id="Syntax" name="Syntax">Sintassi</h2> -<pre class="syntaxbox"><code>Object.create(<var>proto</var>[, <var>propertiesObject</var>])</code></pre> -<h3 id="Parameters" name="Parameters">Parametri</h3> -<dl> - <dt> - <code>proto</code></dt> - <dd> - L'oggetto che farà da prototipo per il nuovo oggetto creato.</dd> - <dt> - <code>propertiesObject</code></dt> - <dd> - Opzionale. Se specificato e non {{jsxref("Global_Objects/undefined", "undefined")}}, un oggetto le cui proprie proprietà enumerabili (ovvero, quelle proprietà definite esclusivamente su di sé e non quelle enumerabili presenti nella sua catena dei prototipi) specificano descrittori di proprietà da aggiungere all'oggetto appena creato, con i corrispondenti nomi di proprietà. Queste proprietà corrispondono al secondo argomento di {{jsxref("Object.defineProperties()")}}.</dd> -</dl> -<h3 id="Throws" name="Throws">Throws</h3> -<p>Lancia un'eccezione di tipo {{jsxref("Global_Objects/TypeError", "TypeError")}} se il parametro <code>proto</code> non è {{jsxref("Global_Objects/null", "null")}} oppure un oggetto.</p> -<h2 id="Examples" name="Examples">Esempi</h2> -<h3 id="Example:_Classical_inheritance_with_Object.create" name="Example:_Classical_inheritance_with_Object.create">Esempio: ereditarietà classica con <code>Object.create</code></h3> -<p>Sotto, trovi un esempio di come implementare un'ereditarietà classica usando <code>Object.create</code>. Si tratta di un'ereditarietà singola, l'unica supportata da Javascript.</p> -<pre class="brush: js">// Shape - superclass -function Shape() { - this.x = 0; - this.y = 0; -} - -// superclass method -Shape.prototype.move = function(x, y) { - this.x += x; - this.y += y; - console.info('Shape moved.'); -}; - -// Rectangle - subclass -function Rectangle() { - Shape.call(this); // call super constructor. -} - -// subclass extends superclass -Rectangle.prototype = Object.create(Shape.prototype); -Rectangle.prototype.constructor = Rectangle; - -var rect = new Rectangle(); - -console.log("Is rect an instance of Rectangle? " + (rect instanceof Rectangle)); // true -console.log("Is rect an instance of Shape<span style="font-size: 1rem;">? " + (rect instanceof Shape)); // true</span> - -rect.move(1, 1); // Outputs, 'Shape moved.' -</pre> -<p>Se desideri ereditare proprietà e metodi da oggetti multipli, puoi utilizzare dei mixins.</p> -<pre class="brush: js">function MyClass() { - SuperClass.call(this); - OtherSuperClass.call(this); -} - -MyClass.prototype = Object.create(SuperClass.prototype); // inherit -mixin(MyClass.prototype, OtherSuperClass.prototype); // mixin - -MyClass.prototype.myMethod = function() { - // do a thing -}; -</pre> -<p>La funzione <code>mixin</code> copia le funzioni dell'oggetto prototype della superclasse nell'oggetto prototype della sottoclasse; la funzione mixin deve essere implementata dall'utente. Un esempio di funzione simil mixin potrebbe essere <a href="http://api.jquery.com/jQuery.extend/">jQuery.extend</a>.</p> -<h3 id="Example:_Using_propertiesObject_argument_with_Object.create" name="Example:_Using_propertiesObject_argument_with_Object.create">Esempio: Usare l'argomento <code>propertiesObject</code> con <code>Object.create</code></h3> -<pre class="brush: js">var o; - -// create an object with null as prototype -o = Object.create(null); - - -o = {}; -// is equivalent to: -o = Object.create(Object.prototype); - - -// Example where we create an object with a couple of sample properties. -// (Note that the second parameter maps keys to *property descriptors*.) -o = Object.create(Object.prototype, { - // foo is a regular 'value property' - foo: { writable: true, configurable: true, value: 'hello' }, - // bar is a getter-and-setter (accessor) property - bar: { - configurable: false, - get: function() { return 10; }, - set: function(value) { console.log('Setting `o.bar` to', value); } - } -}); - - -function Constructor() {} -o = new Constructor(); -// is equivalent to: -o = Object.create(Constructor.prototype); -// Of course, if there is actual initialization code in the -// Constructor function, the Object.create cannot reflect it - - -// create a new object whose prototype is a new, empty object -// and a adding single property 'p', with value 42 -o = Object.create({}, { p: { value: 42 } }); - -// by default properties ARE NOT writable, enumerable or configurable: -o.p = 24; -o.p; -// 42 - -o.q = 12; -for (var prop in o) { - console.log(prop); -} -// 'q' - -delete o.p; -// false - -// to specify an ES3 property -o2 = Object.create({}, { - p: { - value: 42, - writable: true, - enumerable: true, - configurable: true - } -}); -</pre> -<h2 id="Polyfill" name="Polyfill">Polyfill</h2> -<p>Questo polyfill implementa il caso di utilizzo principale, ovvero creare un nuovo oggetto specificando un oggetto prototipo, ma non prende in considerazione il secondo argomento dell'API orginale.</p> -<pre class="brush: js">if (typeof Object.create != 'function') { - Object.create = (function() { - var Object = function() {}; - return function (prototype) { - if (arguments.length > 1) { - throw Error('Second argument not supported'); - } - if (typeof prototype != 'object') { - throw TypeError('Argument must be an object'); - } - Object.prototype = prototype; - var result = new Object(); - Object.prototype = null; - return result; - }; - })(); -} -</pre> -<h2 id="Specifications" name="Specifications">Specifiche</h2> -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specifica</th> - <th scope="col">Stato</th> - <th scope="col">Commento</th> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.2.3.5', 'Object.create')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td>Definizione iniziale. Implementato in JavaScript 1.8.5.</td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-object.create', 'Object.create')}}</td> - <td>{{Spec2('ES6')}}</td> - <td> </td> - </tr> - </tbody> -</table> -<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilità browser</h2> -<div> - {{CompatibilityTable}}</div> -<div id="compat-desktop"> - <table class="compat-table"> - <tbody> - <tr> - <th>Caratteristica</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Supporto base</td> - <td>{{CompatChrome("5")}}</td> - <td>{{CompatGeckoDesktop("2")}}</td> - <td>{{CompatIE("9")}}</td> - <td>{{CompatOpera("11.60")}}</td> - <td>{{CompatSafari("5")}}</td> - </tr> - </tbody> - </table> -</div> -<div id="compat-mobile"> - <table class="compat-table"> - <tbody> - <tr> - <th>Caratteristica</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Supporto base</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatGeckoDesktop("2")}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatOperaMobile("11.50")}}</td> - <td>{{CompatVersionUnknown}}</td> - </tr> - </tbody> - </table> -</div> -<p>Basato sulla <a href="http://kangax.github.com/es5-compat-table/">tabella di compatibilità di Kangax</a>.</p> -<h2 id="See_also" name="See_also">Vedi anche</h2> -<ul> - <li>{{jsxref("Object.defineProperty")}}</li> - <li>{{jsxref("Object.defineProperties")}}</li> - <li>{{jsxref("Object.prototype.isPrototypeOf")}}</li> - <li>Il post di John Resig su <a href="http://ejohn.org/blog/objectgetprototypeof/">getPrototypeOf</a></li> -</ul> |
