我有一个 JavaScript 函数,它需要根据某些变量返回不同的对象。

return {
  source: fSource,
  a: readArray(),
  b: readArray()
};

是否有任何保证解释器将 readArray 的第一个返回值分配给 a 并将第二个返回值分配给 b?我可以轻松地将其重写为:
var tmp = {
  source: fSource,
};
tmp.a = readArray();
tmp.b = readArray();
return tmp;

但是我有很多这样的代码,第一个符号非常漂亮。

我知道对象属性的顺序可能会改变,但我怀疑这会影响我的情况。

更新:

为了澄清我的担忧:
var a = {
  foo: fn1(),
  bar: fn2()
};

我不在乎对象中 foo 和 bar 的顺序。但是有没有可能在 fn1 之前调用 fn2?

最佳答案

回答您的更新...

不,这是不可能的。

函数调用将按照您在代码中声明的顺序进行。

关于javascript - 对象属性是否按照声明的顺序分配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19320693/

10-13 01:58