Jedes Objekte besitzt auch eine constructor Eigenschaft welche
auf die jeweilige Konstruktor Funktion zeigt. Im folgenden Codeschnipsel wird
zunächst ein human Objekt erzeugt, später wird über den constructor
ein weiteres indiziert.
human = function(name,sex,age){
this.name = name;
this.sex = sex;
this.age = age;
this.child = [];
}
human.prototype.newchild = function(name,sex){
this.child[this.child.length] = new this.constructor(name,sex,1);
}
mirj = new human("mirj","female",17);
mirj.newchild("steffi","female")
alert(mirj.child[0].name) // "steffi"
alert(mirj.child[0].sex) // "female"
alert(mirj.child[0].age) // 1
alert(mirj.constructor == human) // true
alert(mirj.child[0].constructor == human) // true
Die Zeile mit new this.constructor(name,sex,1); ist gleichbedeutend
mit new human(name,sex,1);. Wie die letzten zwei Zeilen des obigen
Beispiels zeigen, ist es Möglich über den constructor abzufragen von welcher
Konstruktor - Funktion ein Objekt erstellt wurde.