当你调用callback
它时,它返回 5 + 1 到fn
- 并且6()
是无效的 JavaScript。
callback(5) === 6
fn(callback(5)) === fn(6)
fn(6) === 6()
您可以修改callback
以返回一个将一个添加到提供的参数的函数:
var callback = function(num) {
return function() {
return num + 1;
};
}
现在,当您调用callback()
它时,它会返回一个函数而不是一个数字 - 返回的函数可以访问您传递给“工厂”函数的数字,并且无论何时调用它都会返回该数字加一。因此:
callback(5) === function() { var num = 5; return num + 1; }
fn(callback(5)) === fn(function() { var num = 5; return num + 1; })
fn(function() { var num = 5; return num + 1; }) === (function() { var num = 5; return num + 1; })()