Sök…
Anmärkningar
Konstruktorfunktioner är faktiskt bara vanliga funktioner, det finns inget speciellt med dem. Det är bara det new
nyckelordet som orsakar det speciella beteendet som visas i exemplen ovan. Konstruktorfunktioner kan fortfarande kallas som en vanlig funktion om så önskas, i vilket fall du skulle behöva binda this
värde uttryckligen.
Förklarar en konstruktörsfunktion
Konstruktorfunktioner är funktioner som är konstruerade för att konstruera ett nytt objekt. Inom en konstruktorfunktion avser nyckelordet this
ett nyskapat objekt som värden kan tilldelas. Konstruktorfunktioner "returnerar" detta nya objekt automatiskt.
function Cat(name) {
this.name = name;
this.sound = "Meow";
}
Konstruktorfunktioner åberopas med det new
nyckelordet:
let cat = new Cat("Tom");
cat.sound; // Returns "Meow"
Konstruktorfunktioner har också en prototype
som pekar på ett objekt vars egenskaper automatiskt ärvs av alla objekt som skapats med den konstruktorn:
Cat.prototype.speak = function() {
console.log(this.sound);
}
cat.speak(); // Outputs "Meow" to the console
Objekt skapade av konstruktörsfunktioner har också en speciell egenskap på sin prototyp som kallas constructor
, som pekar på funktionen som används för att skapa dem:
cat.constructor // Returns the `Cat` function
Objekt som skapats av konstruktorfunktioner anses också vara "instanser" av konstruktorfunktionen av operatörens instanceof
:
cat instanceof Cat // Returns "true"