var google = google || {};
google.Test = google.Test || {};
google.Test.Render = google.Test.Render || {};
上記と以下の違いは何ですか。
var MyCompany = MyCompany || {
MyApplication: {
Model: {}
} };
そして、||の目的は何ですか ?
var google = google || {};
google.Test = google.Test || {};
google.Test.Render = google.Test.Render || {};
上記と以下の違いは何ですか。
var MyCompany = MyCompany || {
MyApplication: {
Model: {}
} };
そして、||の目的は何ですか ?
最初のスニペットは、名前空間の各レベルが存在するかどうかをテストし、存在しない場合はそれを作成します(ただし、最初の行はおそらく存在するはずですvar google = google || {};
)。
2つ目は、トップレベルが存在するかどうかのみをテストします。例えば:
var MyCompany = {};
// later in the same scope
var MyCompany = MyCompany || { MyApplication: { Model: {} } };
MyCompany
はすでに定義されているため、この式は次のように評価されますMyCompany = MyCompany
。つまりMyCompany
、空の要素のままであるため、ネストされたオブジェクトは作成されません。次のコードがの存在に依存している場合、MyCompany.MyApplication
失敗します。
ここでは、どのように機能するか||
を説明します。Javascriptでは、変数宣言に論理演算子があるとはどういう意味ですか?