【发布时间】:2015-10-08 23:00:17
【问题描述】:
当我查看 MDN 以了解有关闭包的一些要点时,我遇到了以下函数。
它可以是 javascript 中的已知模式,但对于 java 或 .NET 开发人员来说很奇怪。
我想知道它是如何工作的,我知道 javascript 语言中的参数和第一类对象行为,但是 add5(2) 如何将 2 分配给 y 变量。
function makeAdder(x) {
return function(y) {
return x + y;
};
}
var add5 = makeAdder(5);
var add10 = makeAdder(10);
console.log(add5(2)); // 7
console.log(add10(2)); // 12
【问题讨论】:
-
我想我明白了,因为 makeAdder(x) 返回函数(y) 所以 add5 的值是函数(y) 所以当我做 add5(2) 时我将 2 传递给 y跨度>
标签: javascript