Tommy G.: Objektorientierung und Methoden

Beitrag lesen

Hallo zusammen,

ich habe hier gerade ein Problem und wollte einfach mal nachfragen, ob mir hier jemand weiterhelfen kann.

Ich habe mir in JS ein kleines Objekt geschrieben mit dem Namen Controller.

"function Controller(){}"

Soviel zur Deklaration. Nun füge ich über das Schlagwort "prototype" einige Methoden und Attribute hinzu.

  
    Controller.prototype.setConfig = function () {  
        this.sendRequest();  
        this.setStandartFunctions();  
    }  

Innerhalb einer dieser Methoden möchte ich nun eine andere Methode des Objekts aufrufen.

  
    Controller.prototype.setStandartFunctions = function () {  
        $('.buttonNewData').bind('click',function() {  
            Controller.prototype.startLayerControl('create');  
        });  
        $('.editDataSet').bind('click',function() {  
            Controller.prototype.startLayerControl('edit',$(this));  
        });  
        $('.deleteDataSet').bind('click', function() {  
        var selectedRow =            $(this).parent().children();				  
        var deleteBox = Controller.prototype.setDeleteDataDialogTemplate();  
  
        $(this).append(deleteBox);  
        $('#deleteBox').dialog({  
            height: 110,  
            width:	200,  
        });  
  
        Controller.prototype.setDeleteTemplateConfig();  
    });  
}  

An dieser Methode kann man nun schon mein "Problem" erkennen. Ich rufe andere Methoden desselben Objekts immer mit "Controller.prototype.[Methode]" auf. In den meisten Fällen funktioniert das, allerdings nicht bei allen.

this.[Methode] kann ich nicht verwenden, da sich das this auf das HTML Element, wo das event ausgelöst wurde, bezieht. Controller.prototype.[Methode] setzt die Funktionalität der Methode allerdings immer wieder neu auf das Element, da ich hier mit anonymen Funktionen arbeite. Ich schätze einfach mal, dass hier das problem liegt.

Lange Rede kurzer Sinn, wie kann ich eine Methode einer Klasse innerhalb einer anderen Methode aufrufen.

Ich hoffe ich konnte die Problemmatik verständlich erklären.

Ich hoffe auf schnelle Antworten.

Viele Grüße,

Tommy