【发布时间】:2013-06-30 13:13:49
【问题描述】:
如果我写
var a = [1,2];
var b = {
foo: a.pop(),
bar: a.pop()
};
根据规范,b 的值是多少?
(通过实验,它是{foo: 2, bar: 1},但我担心这是否是特定于实现的。)
【问题讨论】:
-
为什么它是特定于实现的?
pop改变原始数组。 -
@elclanrs,我认为问题在于对象
b的属性值是否将始终按照它们在代码中列出的顺序进行评估。 -
哦,我明白了...这实际上是一个很好的问题,但是虽然对象中属性的顺序是微不足道的,但评估的顺序却不是,所以我会说这是非问题,但我可能错了......
标签: javascript semantics