考虑这个javascript:
var foo = {bar : 1111};
console.log(foo);
console.log(foo.bar);
foo.bar = 2222;
console.log(foo);
console.log(foo.bar);
在 Firefox 的萤火虫中,这显示了我的预期:
Object { bar=1111}
1111
Object { bar=2222}
2222
但是,在 Safari 和 Chrome 的控制台中,它显示:
Object { bar=2222}
1111
Object { bar=2222}
2222
换句话说,对象在打印转储时在控制台中显示错误的属性,但如果打印特定属性则显示正确的值。
这是浏览器的怪癖吗?或者我缺少的面向对象 javascript 的一个基本方面?