Object create consente di creare un nuovo oggetto partendo dall'oggetto prototipo e permette anche di specificare le proprietà dell'oggetto creato.
Da zero ad eroe
Entra nel mondo della programmazione web: variabili, funzioni, array, DOM, eventi. Con esercizi pratici e progetti coinvolgenti.
- ⏱️ 8 ore di corso registrato
- 🧩 Più di 50 algoritmi risolti passo passo
- 🎯 Livello base — da zero ad eroe
- 💻 100% online, fruibile quando vuoi
Dunque segue questa sintassi:
Object.create(prototypeObject, propertiesObject)
Dove prototypeObject rappresenta l'oggetto prototipo, mentre propertiesObject rappresenta le proprietà del nuovo oggetto creato. Queste proprietà possono anche essere dei metodi.
Se prototypeObject è uguale a null, si genera un oggetto vuoto, cioè senza una struttura. Dunque scrivere:
var mioOggetto = Object.create(null);
Equivale a scrivere semplicemente questo codice:
var mioOggetto = {};
Invece se propertiesObject è uguale a null, si genera un'eccezione di tipo TypeError.
Dunque questo codice:
var mioOggetto = Object.create(null, null);
produrrà questa eccezione: Uncaught TypeError: can't convert null to object.
Il parametro propertiesObject può dunque essere opzionale oppure se presente specifica i descrittori di proprietà secondo il metodo Object.defineProperties(). Questo metodo, che affronteremo nella prossima lezione, serve a definire nuove proprietà oppure a modificare quelle esistenti.
Esempio object create
Facciamo adesso un semplice esempio creando un oggetto auto1 partendo dal prototipo auto che è stato costruito con due sole proprietà. La proprietà tipo che rappresenta il tipo di alimentazione della nostra macchina. Mentre la proprietà display è una funzione che visualizza nella console il tipo di alimentazione.
var auto = {
tipo: 'benzina',
display: function() {
console.log(this.tipo);
}
};
var auto1 = Object.create(auto);
auto1.display();
Notiamo che in questo esempio il parametro propertiesObject non è definito, come abbiamo spiegato prima, infatti è opzionale.
Dopo su auto1 richiamiamo il metodo che abbiamo creato, display().
Modifichiamo adesso l'esempio aggiungendo una seconda auto a cui modificheremo il valore della proprietà tipo, in questo modo:
var auto2 = Object.create(auto);
auto2.tipo = 'diesel';
auto2.display();
In questa lezione abbiamo semplicemente mostrato come creare un oggetto utilizzando il metodo object.create. Nella prossima lezione utilizzeremo ancora questo metodo utilizzando anche il metodo Object.defineProperties().
Alcuni link utili
Indice tutorial JavaScript
Le funzioni di callback
Le function callback usate con i metodi e con gli array
Esempi funzioni di callback
Come utilizzare le callback e setTimeout
Cifrario di Cesare online
Come realizzare un convertitore da decimale a binario, ottale ed esadecimale