4

いくつかの変数に応じて異なるオブジェクトを返す必要がある JavaScript 関数があります。

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

インタープリターが readArray の最初の戻り値を a に、2 番目の戻り値を b に割り当てるという保証はありますか? 次のように簡単に書き直すことができます。

var tmp = {
  source: fSource,
};
tmp.a = readArray();
tmp.b = readArray();
return tmp;

しかし、私はそのようなコードをたくさん持っており、最初の表記はかなりきれいです。

オブジェクト プロパティの順序が変更される可能性があることはわかっていますが、これが私のケースに影響を与えるとは思えません。

アップデート:

私の懸念を明確にするために:

var a = {
  foo: fn1(),
  bar: fn2()
};

オブジェクト内の foo と bar の順序は気にしません。しかし、fn2 が fn1 の前に呼び出される可能性はありますか?

4

1 に答える 1

1

更新について回答しています...

いいえ、できません。

関数呼び出しは、コードで宣言したのと同じ順序で行われます。

于 2013-10-11T14:38:31.213 に答える