【问题标题】:Are object properties assigned in the same order they are declared?对象属性的分配顺序是否与它们声明的顺序相同?
【发布时间】:2013-10-19 16:25:42
【问题描述】:

我有一个 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 对象中的任何情况。最初对象属性没有排序,浏览器可能会以不同的方式对待它。如果您关心订单,最好使用数组。
  • @VisioN 我不关心属性的顺序,我关心调用的顺序。
  • 啊,这更有意义。调用顺序应该相同。
  • 听起来不错,谢谢!

标签: javascript function properties


【解决方案1】:

正在回答您的更新...

不,这是不可能的。

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

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 2015-07-19
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多