这是来自"面向对象的javascript"在关于闭包的部分中。我无法理解用于"返回x;"的突出显示的额外功能的需要。尝试使用return x;直接来自接受参数x的函数它并没有起作用,但我无法理解为什么它能使它工作。 感谢
function F() {
var arr = [], i;
for (i = 0; i < 3; i++) {
arr[i] = (function (x) {
**return function ()** {
return x;
};
}(i));
}
return arr;
}
> var arr = F();
> arr[0]();
0
> arr[1]();
1
> arr[2]();
2