3

JavaScript で名前空間が次のように定義されているのを見てきました。

var AppSpace = AppSpace || {};

および/または

var namespace = {};

誰でも教えてもらえますか:

  1. 違いは何ですか?
  2. || とは || 最初の例では?
  3. 最初の例で がAppSpace2 回使用されているのはなぜですか?
  4. 推奨される構文はどれですか?
4

1 に答える 1

9

||演算子は、Javascriptlogical orでは、左のオペランドが true の場合は左のオペランドを返し、そうでない場合は右のオペランドを返します。名前空間が既に定義されているかどうかわからない場合は、コード内の複数の場所 (別のファイルなど) で再利用できるため、最初の構文が推奨されます。

var AppSpace = AppSpace || {}; // AppSauce doesn't exist (falsy) so this is the same as:
                               // var AppSauce = {};
AppSauce.x = "hi";

var AppSpace = AppSpace || {}; // AppSauce does exist (truthy) so this is the same as:
                               // var AppSauce = AppSauce;
console.log(AppSauce.x); // Outputs "hi"

対:

var AppSpace = {};
AppSauce.x = "hi";

var AppSpace = {}; // Overwrites Appsauce
console.log(AppSauce.x); // Outputs undefined
于 2012-11-18T11:10:38.607 に答える