当我查看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