Funktionen innerhalb von Objekten - Objektübergabe nötig?

Back2toxic

Erfahrenes Mitglied
Hallo!

Ich steh mal wieder auf dem Schlauch. Meine Lösung funktioniert zwar, ich bin mir aber sicher, dass es auch eleganter gelöst werden kann...

Meine Frage: Muss ich wirklich jedesmal das Objekt obj weiterreichen, bzw beim Aufruf von this.init() "this" mit übergeben, oder kann das auch anders gelöst werden?

Meine Lösung:
Javascript:
function func(id){
    this.id = id;
    
    this.init = function(obj){
        obj.doAction();
    }
    
    this.doAction = function(obj){
        alert(obj.id);
    }

    this.init(this);
}
var foo = new func('elementID');

vielen Dank im Vorraus!

Grüße
 
Zuletzt bearbeitet von einem Moderator:
Hi,

du kannst das obj einfach in eine übergeordnete Variable schreiben. Also quasi so:

Javascript:
function func(id){
    this.id = id;
    var obj = this;
    
    this.init = function(){
        obj.doAction();
    }
    
    this.doAction = function(){
        alert(obj.id);
    }
 
    this.init();
}
var foo = new func('elementID');

mfg
 
Zuletzt bearbeitet:
Danke erstmal für die Antwort.

Im Prinzip reiche ich damit das Objekt aber trotzdem von Funktion zu Funktion weiter, auch wenn es nicht mehr in jedem funktionsaufruf als Parameter übergeben wird.

Gibt es keine Möglichkeit Funktionsaufrufe innerhalb von Funktionen eines Objektes generell auf das Objekt selbst zu routen?

à la super.doAction()?

Edit: Da es mit weiterreichen des Objekts funktioniert, bzw. mit der Lösung von Ra7or, markiere ich das Thema erstmal als Erledigt.

Falls doch noch jemand eine andere Möglichkeit kennt - immer her damit :)

Grüße
 
Zuletzt bearbeitet:
Zurück