JavaScriptプロジェクトを読み始めました。で開始する.jsファイルの大半は、以下のようなオブジェクトを宣言している:JavaScriptオブジェクト宣言のためのシンボルまたは
window.Example || {
bleh: "123";
blah: "ref"
}
||
記号はここで何をしますか?
JavaScriptプロジェクトを読み始めました。で開始する.jsファイルの大半は、以下のようなオブジェクトを宣言している:JavaScriptオブジェクト宣言のためのシンボルまたは
window.Example || {
bleh: "123";
blah: "ref"
}
||
記号はここで何をしますか?
JavaScriptのオブジェクトは真実であるため、表現はwindow.Example
またはwindow.Example
が偽(または未定義)の場合はデフォルトオブジェクトと評価されます。例:/ truthy falsyと短絡評価の良い説明のため
var x = window.Example || {foo: 'bar'};
// x = {foo: 'bar'}, since window.Example is undefined
window.Example = {test: 1};
var y = window.Example || {foo: 'bar'};
// y = {test: 1}, since window.Example is truthy (all objects are truthy)
読む。
リンクが壊れていると思います。 – user1240679
@ user1240679私に知らせてくれてありがとう!それは後続のスラッシュハハを必要とした。それを私が直した。 – Paulpro
そのコードから抜けている重要なビットあります - 変数宣言:
var something = window.Example || {
bleh: "123",
blah: "ref"
}
これは大体「が存在しない場合を除き、この新しいオブジェクトに設定し、window.Example
にsomething
を設定する」に変換は。
||
演算子は、のように、のように、他のC言語の「or」演算子ですが、それははっきりと異なります。それは実際には以下を意味します。
true
、その部分式の値(ブールへ前に強制は)||
表現エルス||
式の値。したがって、すでに初期化されるかもしれない何かを初期化するために慣用的に使われています:
var something = window.something || defaultValue;
はちょうど意味、何かが 『truthy値を持つwindow
オブジェクトのプロパティである「かどうかを確認する』、およびそうでない場合は、defaultValueに設定してください。
@MikeSamuel私の誤植を修正してくれてありがとう:-) – Pointy
これは有効なJavaScriptではありません。しかし、これは何千も前にSOに尋ねられています。 –
あなたの 'window.Example'プロパティが0、空の文字列、偽などである可能性がある場合、この手法を使用するときは注意してください。 – jbabey