Просто из любопытства.
У меня есть этот JS-код:
var someExternalArray = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 3, name: 'c'}];
var newArray = []
//var item;
for (var i = 0; i < someExternalArray.length; i++){
item = new Object();
item.id = someExternalArray[i].id;
item.name = someExternalArray[i].name;
newArray.push(item);
}
alert('0:' + newArray[0].name + ',1:' + newArray[1].name + ',2:' + newArray[2].name);
Обратите внимание на комментарий var item
, который оставляет цикл с неявно объявленной переменной item
.
-
Если я запустил этот код в FireFox, результатом будет предупреждение:
0:a,1:b,2:c
-
Если я запустил тот же код в Internet Explorer, результатом будет:
0:c,1:c,2:c
Вот jsfiddle: https://jsfiddle.net/fvu9gb26/
Конечно, когда я раскомментирую var item
, он работает одинаково в каждом браузере.
Кто-нибудь знает, почему эта разница происходит? Спасибо.