2013-04-29 34 views
13

いくつかのBackbone.jsの例を見ると、すべての.jsファイルの先頭にvar app = app || {};があります。私はこれの文字通りの意味を理解していますが、それ以外のことに関しては何をしていますか?「var app = app || {};」とは何ですか?行う?

編集:あなたたちは本当に本当に速いです。

答えて

20

変数がまだ定義されていない場合は、変数appを空のオブジェクトに定義します。

これは、定義されていないため、JavaScriptでfalseと評価されます。

定義されている場合、空の文字列など、falseと評価される値を持つ場合、空のオブジェクトとして再定義されます。

+2

具体的には、...「app」の値が偽であれば空のオブジェクトに 'app'を定義します。 – Brad

+0

開始! upvoted +1 –

+0

* "すでに定義されている場合は、ファイルのスコープ内で再定義されます。" *ファイルの範囲内で再定義するのはどういう意味ですか?変数は既にスコープ内にあります。 –

5

これは、「定義済みのアプリが空のオブジェクトであると定義する」を意味します。

JavaScriptOR演算子は、必ずしもbooleanです。式の左辺がfalseの場合、代入は式の右辺になります。

2

appが既に定義されている場合、何もしません。 appが定義されていない場合、それはそれは「truthy」である場合には、第1オペランドを返します。JavaScriptで||オペレータは、var app = {};

18

と同等です。そうでなければ、第2オペランドを返します。 appが割り当てられていない場合、それはundefinedであり、これは「偽り」です。したがって、定義されていないか、または偽である場合、空のオブジェクト{}appに割り当てられます。

+1

+1正解のみです。 –

関連する問題