在我的計劃,我宣佈一個對象myObject的是這樣的:嵌套回調在JavaScript
function myObject()
{
this.start=start;
function start(callbackFunction)
{
// Do something with callbackFunction
}
}
在我的main()方法,我創建對象,我要開始嵌套的回調是這樣的:
var myObject1 = new myObject();
var myObject2 = new myObject();
var list = [];
list.push(myObject1);
list.push(myObject2);
var result = function() {};
var obj;
for (var i=list.length-1; i>=0; i--) {
obj = list[i];
result = function() { obj.start(result);}
}
result(); // I want to do myObject1.start(myObject2.start)); e.g. a nested callback
我不明白爲什麼它不起作用。
如何更正我的代碼?
你是對這個問題,但解決的辦法是行不通的。使用的原始代碼沒有參數作爲回調函數,您可以使用帶有1個參數的函數。如果myObject使用callback作爲'callback()',那麼第一個調用就會成功(它會是'function(){}()'),但是第二個調用不會好(它將會是'undefined() ')。 – Tibos
它不起作用...它有一種遞歸函數的方式? – Scanpat
我的不好。在這裏,它已被糾正。 – hazerd