function count() {
var arr = [];
for (var i=1; i<=3; i++) {
arr.push((function (n) {
return function () {
return n * n;
}
})(i));
}
return arr;
}在看闭包,看不哟 (i) 这句是啥子意思哟大佬能解释下这语句吗
var arr = [];
for (var i=1; i<=3; i++) {
arr.push((function (n) {
return function () {
return n * n;
}
})(i));
}
return arr;
}在看闭包,看不哟 (i) 这句是啥子意思哟大佬能解释下这语句吗
var arr = [];
for (var i=1; i<=3; i++) {
arr.push( square(i) ); // 将square的执行结果存入arr
}
return arr;
}function square(n){
return function () { // 返回一个匿名函数,其中n的值为每次传入的i的值
return n * n;
}
}这个代码是考你对闭包的理解
i是执行时传递的实参,n是函数内接收参数的形参。等同于下面的形式
for (var i=1; i<=3; i++) {
var f = function (n) {
return function () {
return n * n;
}
};
var h = f(i);
arr.push(h);
}