2

可能重复:
元素顺序 - javascript中的for(... in ...)循环

假设你有这样的代码:

var a = {}
a.a = 1;
a.c = 2;
a.b = 3;

for (var i in a) {
    console.log(a[i]);
}

1、2 和 3 是否保证按该顺序打印?我已经测试过,到目前为止情况就是这样,但我不知道它是否永远都是真的。有没有不这样做的浏览器?没有什么奇怪的事情发生,比如删除东西、原型继承等。只是向对象添加属性。

4

2 回答 2

3

除 Chrome 之外的所有当前浏览器都将按照定义的顺序循环对象的属性。

这是 chrome 错误报告:http ://code.google.com/p/chromium/issues/detail?id=883 。它目前被标记为WontFix

于 2009-05-28T03:24:34.227 回答
1

在我当前版本的 Chrome (2.0.172.28) 中,John Resig 的测试用例通过了,所以它现在可能在 Chrome 中修复了吗?

于 2009-05-28T08:45:12.223 回答