Вот мой код:JavaScript: с помощью метода применяются
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