-2

いくつかのプロパティを設定しようとしています。これらのプロパティは、デフォルト値 ( a) を取るか、別の値 ( b) でオーバーライドできます。aとの両方bが未定義の場合があります。bが指定されている場合は、によって設定された値を上書きすることを確認する必要がありますa

質問:

これは単に設定するだけで機能しますか:

 foo: {
   param: a || b
 }

または、より具体的には、 と の両方が定義されている場合abオーバーライドを確認するにはどうbすればよいaですか?

ありがとう!

4

4 に答える 4

4

それよりも複雑ですが、最初に行うことは、「b」が最初に行かなければならないことを理解することです:

  param: b || a

"b" に値があり ( ではないundefined)、それがnull0NaN""、またはfalseでない場合、"param" プロパティの値は "b" の値に設定されます。演算子は||、「b」の正当な「適切な」値が JavaScript の「偽の」値にならない限り、このような状況で機能します。

于 2013-09-11T12:36:28.837 に答える
1

または、より具体的には、 と の両方が定義されている場合abオーバーライドを確認するにはどうbすればよいaですか?

オペランドの順序を入れ替えます。

foo: {
  param: b || a
}
于 2013-09-11T12:36:55.947 に答える
1

最初に true を返す値に短絡します。ここでは、論理 (||) およびその他のオペランドを適切に記述しています。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FOperators%2FLogical_Operators

于 2013-09-11T12:38:50.213 に答える