Я думаю, Firebug делает это иначе, чем инструменты разработчика Chrome. Похоже, Firebug дает стробированную версию объекта, а console.dir
предоставляет расширяемый объект. Оба дают вам расширяемый объект в Chrome, и я думаю, что здесь может возникнуть путаница. Или это просто ошибка в Chrome.
В Chrome оба делают то же самое. Расширяясь в своем тесте, я заметил, что Chrome получает текущее значение объекта при его расширении.
> o = { foo: 1 }
> console.log(o)
Expand now, o.foo = 1
> o.foo = 2
o.foo is still displayed as 1 from previous lines
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Expand now, o.foo = 2
Вы можете использовать следующее, чтобы получить строчную версию объекта, если это то, что вы хотите видеть. Это покажет вам, что объект находится во время вызова этой строки, а не при его расширении.
console.log(JSON.stringify(o));