1
var google = google || {};
google.Test = google.Test || {};
google.Test.Render = google.Test.Render || {};

上記と以下の違いは何ですか。

var MyCompany = MyCompany || { MyApplication: { Model: {} } };

そして、||の目的は何ですか ?

4

1 に答える 1

3

最初のスニペットは、名前空間の各レベルが存在するかどうかをテストし、存在しない場合はそれを作成します(ただし、最初の行はおそらく存在するはずですvar google = google || {};)。

2つ目は、トップレベルが存在するかどうかのみをテストします。例えば:

var MyCompany = {};

// later in the same scope

var MyCompany = MyCompany || { MyApplication: { Model: {} } };

MyCompanyはすでに定義されているため、この式は次のように評価されますMyCompany = MyCompany。つまりMyCompany、空の要素のままであるため、ネストされたオブジェクトは作成されません。次のコードがの存在に依存している場合、MyCompany.MyApplication失敗します。

ここでは、どのように機能するか||を説明します。Javascriptでは、変数宣言に論理演算子があるとはどういう意味ですか?

于 2012-08-15T14:16:23.930 に答える