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"


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow