首先是这两段代码
代码1:
function createFunctions() {
var result = new Array();
for (var i = 0; i < 10; i++) {
result[i] = function() {
return i;
};
}
return result;
}
var funcs = createFunctions();
for (var i = 0; i < 10; i++) {
alert(funcs[i]());
}
代码2:
for (var i = 0; i < aLi.length; i++) {
aLi[i].onmouseover = function() {
this.style.background = 'red';
};
aLi[i].onmouseout = function() {
this.style.background = '#fff';
}
}
请问:
1.为什么代码1中,在最后i变成10之后才执行函数的内容,而代码2却是按i的自增顺序每次都执行呢?
2.这和js的异步执行是否有关系?但我又对这里的执行顺序感到十分混乱,捋不清楚,请大神详细说一下
凤凰求蛊
守着一只汪
相关分类