Javascript 闭包
闭包是什么,有点不理解,希望大神可以发一下简单的代码给我解释一下,感激不尽
1回答
-
侠客岛的含笑
闭包基本格式
function a(i){
return function(){
return i+1
}}
普通遍历
var data = [];
for (var k = 0; k < 3; k++) {
data[k] = function () {
alert(k);
};
}
data[0](); // 3, 而不是0
data[1](); // 3, 而不是1
data[2](); // 3, 而不是2
闭包后
var data = [];
for (var k = 0; k < 3; k++) {
data[k] = (function _helper(x) {
return function () {
alert(x);
};
})(k); // 传入"k"值
}
data[0](); // 0
data[1](); // 1
data[2](); // 2