2
這裏是我的代碼:的Javascript:使用apply方法
var add = function(x,y) {
console.log(x + y);
}
var delay = function(func, wait) {
var inner = function() {
return setTimeout(function() {
return func.apply(inner, arguments);
}, wait);
}
return inner;
};
var delayAdd = delay(add, 500);
delayAdd(100,200); //should log 300 to console after 500ms
//instead, it logs NaN
我懷疑問題是在9號線:return func.apply(inner, arguments);
我的本意是爲add
就在inner
的參數,這些參數在定義調用最後一行delayAdd(100,200)
。但是,這似乎並沒有發生。這是爲什麼,我該如何解決這個問題?
'apply'調用的結果只返回給'timeOut',但是'setTimeout'返回一個對計時器,而不是從裏面返回的結果。 – adeneo