输出10个10
<script type="text/javascript">
function test() {
var arr = [];
for(var i = 0; i < 10; i++) {
arr[i] = function() { //定义时,不执行函数内容
console.log(i + ' ');
}
}
return arr;
}var myArr = test();
for(var j = 0; j < 10; j++) {
myArr[j](); //执行console.log(i + ' '); //输出10个10
}
</script>
闭包和立即执行函数金典例子
function test() {
var arr = [];
for(var i = 0; i < 10; i++) {
arr[i] = function() {
document.write(i+'');
}
}
return arr;
}
var myArr = test();
for(var j = 0; j < 10; j++) {
myArr[j]();
}//=========================================
function test() {
var arr = [];
for(var i = 0; i < 10; i++) {
(function(j) {
arr[j] = function() {
document.write(j + '');
}
}(i)) //立即执行
}
return arr;
}
var myArr = test();
for(var j = 0; j < 10; j++) {
myArr[j]();
}