我在看这个功能
function foo(x) {
var tmp = 3;
return function (y) {
alert(x + y + (++tmp));
}
}
var bar = foo(2); // bar is now a closure.
bar(10);
当我运行它时,变量得到以下值
x = 2,y = 10 tmp = 3。
现在我看到在 foo(2) 中 x 被传递为 2。所以可以理解 x 得到 2 的值。但是 bar(10) 将值 0 分配给 y。怎么样?我对接收函数如何知道 10 是 bar(10) 分配的 y 值感到困惑