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