Wie man eine variable zurückgegeben, die über mehrere Funktionen - Javascript/jQuery

Diese Frage in der Zusammenfassung ist es, herauszufinden, wie zur übergabe von Variablen zwischen javascript-Funktionen ohne: zurückgeben von Variablen, Parameterübergabe zwischen primären Funktionen, Globale Variablen, und zwingt die Funktion 1 zu warten, für Funktion 2 zu beenden. Ich fand heraus, eine jQuery-Lösung und erzielte in der unten (im Abschnitt Antwort).


Alten Post: ich Initialisiere einen Satz von vier Funktionen, jede Berufung auf jedes andere in einer anderen Weise. Am Ende der es, ich brauche die final-modifiziertes Produkt (ein array) zurückgegeben, um die Initialisierung der Funktion.

Globale Variablen nicht zwingen, die ursprüngliche Funktion zu warten. Und wieder rückwärts, die vier mal nicht funktioniert entweder. Wie vertreibt man eine modifizierte variable zurück zu seiner Initialisierungsfunktion, wenn Sie nicht mehr zurück können? Oder warum ist es nicht zurückgeben?

(das Labyrinth beginnt bei initFunctionA endet functionD)

classOne = {
  initFunctionA : function() {
    classTwo.functionB(functionD, array);
    //I NEED ACCESS TO ARRAY2 HERE
  },
  functionD : function(data, array) {
    var array2 = //modifications to array
  }
}

{...}

classTwo = {
  functionB : function(callback, array) {
    $.ajax({
      success: function(ret){
        classTwo.functionC(ret, callback, array)
      }
    });
  },
  functionC : function(ret, callback, array) {
     callback(ret.data.x, array);
  }
}
Javascript arrays per Referenz übergeben, so dass, wenn Sie halten, vorbei an den gleichen array, um die verschachtelten Funktionen, die Sie erhalten, sollten die veränderte array in die endgültige Anruf. Könntest du poste den vollständigen code arbeiten?
Dass der code wirklich keinen Sinn; classTwo.function(functionB, array) im besonderen. Werden Sie sagen, dass Sie gehen zu call functionB es?
du hast Recht. sorry. Ich erstelle ein array (array2) in meiner letzten Funktion mit dem ersten array. Ich habe versucht, einfach zu sagen: array = array2 an das Ende von allem, aber es funktioniert immer noch nicht. Es ist die Rückgabe der Daten, bevor Sie die änderungen (initFunctionA geht ohne Wartezeit). Der code ist ziemlich lang. Ich machte änderungen vor, obwohl es ja hoffentlich klarer. Vielen Dank für Ihre Hilfe!
yep, ich rufe functionB es.

InformationsquelleAutor Kyle | 2010-08-20

Schreibe einen Kommentar