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"


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow