Возможный дубликат:
Является ли консоль JavaScript Chrome ленивой относительно оценки массивов?
Рассмотрим этот javascript:
var foo = {bar : 1111};
console.log(foo);
console.log(foo.bar);
foo.bar = 2222;
console.log(foo);
console.log(foo.bar);
В Firefox Firebug это показывает, что я ожидал:
Object { bar=1111}
1111
Object { bar=2222}
2222
Однако в браузере Safari и Chrome он показывает:
Object { bar=2222}
1111
Object { bar=2222}
2222
Другими словами, объект показывает неправильные атрибуты в консоли при печати, но правильное значение, если печатается конкретный атрибут.
Является ли это причудой браузеров? Или фундаментальный аспект объектно-ориентированного javascript, который мне не хватает?