javascript中的对象变量是按照添加的顺序枚举的吗?

时间:2009-05-28 03:17:29

标签: javascript iteration

  

可能重复:
  Elements order - for (... in ...) loop in javascript

假设你有这样的代码:

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

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

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

2 个答案:

答案 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中修复了吗?