Axel Richter: Prototype

Beitrag lesen

Hallo,

Ich versuche an das Objekt String eine Prototype-Funktion anzuhängen wie

String.prototype.DoIt = function (){
this = 'nicht hallo';
}

Hiermit erweiterst Du den Prototyp des Objektes String um eine Methode DoIt(). Diese Methode wird von einer Instanz des String-Objektes aufgerufen. Wäre es möglich, dem this (der String-Instanz) in diesem Kontext einen Wert zuzuweisen, könnte das ein völlig anderes Objekt sein, welches dann die Methode DoIt gar nicht mehr hätte. Folglich geht genau das nicht.

Funktionieren würde z.B. folgendes:

String.prototype.negiereInhalt = function () {
  return "nicht " + this;
}

var MyString = new String('hallo');
alert(MyString.negiereInhalt());
alert(MyString);

MyString = 'gut';
alert(MyString.negiereInhalt());
alert(MyString);

viele Grüße

Axel