OOP in JavaScript

Objekt - constructor

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.