假设你有这样的代码:
var a = {}
a.a = 1;
a.c = 2;
a.b = 3;
for (var i in a) {
console.log(a[i]);
}
是否保证按顺序打印1,2和3?我已经测试了,到目前为止一直都是如此,但我不知道它是否永远都是真的。有没有这样做的浏览器?没有什么奇怪的事情,比如删除东西,原型继承等等。只需向对象添加属性。
答案 0 :(得分:3)
除Chrome之外的所有当前浏览器都会按照定义的顺序遍历对象的属性。
以下是Chrome错误报告:http://code.google.com/p/chromium/issues/detail?id=883。它目前标记为WontFix
。
答案 1 :(得分:1)
在我目前的Chrome版本(2.0.172.28)中,John Resig的测试用例已过,所以现在可能已在Chrome中修复了吗?