for-loop内で可変パラメータを使用して関数を作成しています。残念ながら、forループが2回目に実行されるとすぐに、変数を更新し、以前に生成された関数のすべてのパラメータを更新します。このループで「分離された」値を解析すると、次のループで上書きされません。変数が更新されたときに変数のパラメータが変更された関数
私の現在のコードはこれです:
var self = this;
for (var i = 0; i < wordObjects.length; i++) {
var wordCurrent = wordObjects[i].word;
var wordCorrect = wordObjects[i].correct;
var moreData = wordObjects[i].moredata;
var successFunction = wordObjects[i].successFunction;
//chain all arguments in one array
variableArray = []
variableArray = variableArray.concat(wordCorrect);
variableArray = variableArray.concat(moreData);
//create function
var runFunction = function() {self.executeFunctionByName(successFunction, self, variableArray)};
this.saveFunctions[wordCurrent] = runFunction;
};
私は内部のすべての配列を持つオブジェクトを生成しようとしたが、それはすべての配列を渡すことはありませんでした。それは次のようになりました。
var runFunction = function() {self.executeFunctionByName(successFunction, self, variableArray[i])};
私はvariableArray.slice()を渡そうとしました。しかし、これはどちらもうまくいかないようでした。
variableArrayはグローバル – epascarello