闭包产生的问题
<script language="javascript">
var test = function() {
var arr = [];
for(i = 0; i < 10; i ++ ) {
arr[i] = function() {
document.write(i + " ");
}
}
return arr;
}
var myArr = test();
for (j = 0; j < 10; j++) {
myArr[j]();
}
解决闭包产生的问题–立即执行函数
(function(){…}())
<script language="javascript">
var test = function() {
var arr = [];
for(i = 0; i < 10; i ++ ) {
(function(j){
arr[j] = function() {
document.write(j + " ");
}
}(i));
}
return arr;
}
var myArr = test();
for (j = 0; j < 10; j++) {
myArr[j]();
}