Ricerca…
Osservazioni
Le funzioni di costruzione sono in realtà solo funzioni regolari, non c'è niente di speciale in loro. È solo la new
parola chiave che causa il comportamento speciale mostrato negli esempi sopra. Le funzioni del costruttore possono ancora essere chiamate come una funzione normale se lo si desidera, nel qual caso è necessario associare esplicitamente this
valore.
Dichiarazione di una funzione di costruzione
Le funzioni di costruzione sono funzioni progettate per costruire un nuovo oggetto. All'interno di una funzione di costruzione, la parola chiave this
riferisce a un oggetto appena creato a cui possono essere assegnati i valori. Le funzioni del costruttore "restituiscono" automaticamente questo nuovo oggetto.
function Cat(name) {
this.name = name;
this.sound = "Meow";
}
Le funzioni di costruzione vengono richiamate utilizzando la new
parola chiave:
let cat = new Cat("Tom");
cat.sound; // Returns "Meow"
Le funzioni di costruzione hanno anche una proprietà prototype
che punta a un oggetto le cui proprietà sono automaticamente ereditate da tutti gli oggetti creati con quel costruttore:
Cat.prototype.speak = function() {
console.log(this.sound);
}
cat.speak(); // Outputs "Meow" to the console
Gli oggetti creati dalle funzioni di costruzione hanno anche una proprietà speciale sul loro prototipo chiamato constructor
, che punta alla funzione utilizzata per crearli:
cat.constructor // Returns the `Cat` function
Anche gli oggetti creati dalle funzioni di costruzione sono considerati "istanze" della funzione di costruzione dall'operatore instanceof
:
cat instanceof Cat // Returns "true"