Gewusst wie: aufrufen einer Methode in ein javascript-Objekt

Ich bin nur zu lernen, darüber, wie am besten organisieren meine javascript-code, und ich hatte eine Frage bezüglich dieses kleine Stück code, den ich schrieb:

var reportsControllerIndex = {
    plotMapPoints: function(data) {
        //plots points
    },

    drawMap: function() {
        $.getJSON('/reports.json', function(data) {
            reportsControllerIndex.plotMapPoints(data);         
        });
    },

    run: function() {
        reportsControllerIndex.drawMap();
    }
};

Die Frage ist in Bezug auf das aufrufen einer weiteren Funktion von reportsControllerIndex innerhalb der reportsControllerIndex Objekt. Ich hatte zuerst versucht, das folgende Stück code für die run-Funktion:

run: function() {
    this.drawMap();
}

welche perfekt funktionierte. Allerdings habe ich dann schnell gefunden, dies zu tun für die drawMap Funktion:

drawMap: function() {
    $.getJSON('/reports.json', function(data) {
        this.plotMapPoints(data);         
    });
}

funktioniert nicht, da "dieser" würde jetzt beziehen sich auf die callback-Funktion der getJSON-Aufruf.

War meine Lösung zu einfach reportsControllerIndex vor allem der Methoden, die ich anrufen wollen, aber ich war neugierig: ist es ein relativ Weg für den Aufruf von Funktionen in einem Gesamt-Objekt wie folgt (so wie man es tun würde, mit einer Klasse in einem standard-OO-Sprache)? Oder bin ich gezwungen, es zu tun wie ich momentan bin, nur den Aufruf der Methoden durch den Namen des Objekts?

InformationsquelleAutor der Frage joeellis | 2010-12-08

Schreibe einen Kommentar