Zoeken…
Opmerkingen
Constructorfuncties zijn eigenlijk gewoon normale functies, er is niets speciaals aan. Het is alleen het new
trefwoord dat het speciale gedrag veroorzaakt dat in de bovenstaande voorbeelden wordt getoond. Constructorfuncties kunnen desgewenst nog steeds als een normale functie worden aangeroepen, in welk geval u this
waarde expliciet moet binden.
Het verklaren van een constructorfunctie
Constructorfuncties zijn functies die zijn ontworpen om een nieuw object te construeren. Binnen een constructorfunctie verwijst het trefwoord this
een nieuw gemaakt object waaraan waarden kunnen worden toegewezen. Constructor functies "retourneren" dit nieuwe object automatisch.
function Cat(name) {
this.name = name;
this.sound = "Meow";
}
Constructorfuncties worden opgeroepen met het new
trefwoord:
let cat = new Cat("Tom");
cat.sound; // Returns "Meow"
Constructorfuncties hebben ook een prototype
eigenschap die verwijst naar een object waarvan de eigenschappen automatisch worden overgenomen door alle objecten die met die constructor zijn gemaakt:
Cat.prototype.speak = function() {
console.log(this.sound);
}
cat.speak(); // Outputs "Meow" to the console
Objecten gemaakt door constructorfuncties hebben ook een speciale eigenschap op hun prototype genaamd constructor
, die verwijst naar de functie die wordt gebruikt om ze te maken:
cat.constructor // Returns the `Cat` function
Objecten gemaakt door constructorfuncties worden door de operator instanceof
ook beschouwd als "instanties" van de constructorfunctie:
cat instanceof Cat // Returns "true"