通过阅读 Eloquent javascript,试图让我的头脑了解函数,我阅读了以下示例代码:
function makeAddFunction(amount) {
function add(number) {
return number + amount;
}
return add;
}
var addTwo = makeAddFunction(2);
var addFive = makeAddFunction(5);
show(addTwo(1) + addFive(1));
我明白了它的要点,但是在几个小时内多次检查了代码并阅读了随附的文本后,我并没有明白这一点:这段代码到底是做什么的? add
函数从哪里获取 number
参数?它来自 show
命令吗?如果是这样,它是如何传播的?我只是没看到...
最佳答案
函数makeAddFunction
接受一个数字(amount
)并返回一个函数,该函数将作为参数传入的数字添加到传递到外部函数的数字上。
function makeAddFunction(amount) {
function add(number) {
return number + amount;
}
return add;
}
调用var addTwo = makeAddFunction(2);
相当于编写以下函数:
var addTwo = function(number) {
return number + 2; // this function is actually returned by makeAddFunction
}
您可以使用参数来调用它 addTwo(5);
这是一个 fiddle :http://jsfiddle.net/Eh4LK/1/按运行按钮执行
关于javascript - 文本中的函数示例对我来说没有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18989634/