我看到很多人回答说jQuery each()函数不是异步的。但是我不明白为什么这个功能会表现出某种方式。谁能解释为什么这样的代码:
var otherArray = [1, 2, 3, 4, 5];
var array = [];
console.log(array);
$(otherArray).each(function () {
array[1] = $(this);
});
具有以下输出:
但是该代码:
var otherArray = [1, 2, 3, 4, 5];
var array = [];
console.log(array);
$(otherArray).each(function () {
// array[1] = $(this);
})
具有该输出:
答案 0 :(得分:1)
您在Chrome / Firefox中看到的控制台实际上并没有提供对象{em> 在console.log
时的确切快照。参见this answer。
代码确实是同步运行的。要验证这一点,请打印“原始”值,例如数组的长度:
var otherArray = [1, 2, 3, 4, 5];
var array = [];
console.log(array.length);
$(otherArray).each(function () {
array[1] = $(this);
});
应按预期打印0
。