Ermitteln, ob eine Konstruktor-Funktion mit new aufgerufen wurde

Thomas Darimont

Erfahrenes Mitglied
Hallo,

hier mal ein kleines Beispiel wie man feststellen kann ob eine Konstruktor-Funktion via new aufgerufen wurde (ob eine neue Objekt-Instanz erzeugt wird) oder nicht:
Javascript:
function Point(x,y){
    if(this == window || 'Element' in this){ // not called via new
        throw new Error("instances should only be created via new");
    }
    this.x = x;
    this.y = y;
}

p0 = new Point(1,2); //erzeugt neue Instanz von Point
p1 = Point(3,4); //führt zu Fehler

Gruß Tom
 
Zurück