{}
空の意味を理解しようとしています。
var $sb = $sb || {};
これは、変数 $sb の値がそれ自体にコピーされているか、関数リテラルであることを意味しますか?
完全なコンテキスト:
var $sb = $sb || {};
$sb.xxx = function() {
// code
}
{}
空の意味を理解しようとしています。
var $sb = $sb || {};
これは、変数 $sb の値がそれ自体にコピーされているか、関数リテラルであることを意味しますか?
完全なコンテキスト:
var $sb = $sb || {};
$sb.xxx = function() {
// code
}
のショートカットです
new Object()
だからこの行
var $sb = $sb || {};
変数$sb
が存在するかどうかを確認し、存在しない場合は新しいオブジェクトを作成して$sb
変数に割り当てます。
したがって、他の方法では、次のように書くことができます。
if( !$sb ) {
var $sb = new Object();
}
var a = {}
オブジェクトリテラル表記と呼ばれます。var a = new Object()
スコープの解決が必要ないため (つまり、同じ名前のコンストラクターを定義でき、そのため JavaScript エンジンがそのようなルックアップを行う必要がある)よりも高速です。
パターンは、すでに定義されている場合にvar a = a || {};
置き換えを避けるために使用されます。このパターンでは、or-operator:は合体演算子として機能します。isまたはit の場合、ステートメントの右側にある式が実行されます。a
a
||
a
null
undefined
{}
このパターンを使用すると、a
常に として定義され、object
既に存在する場合は上書きされません。
オブジェクトリテラルです。お気に入り:
var obj = { x: 4, y: 2 };
プロパティがないだけです:
var obj = {};
演算子は、偽でない値に評価される場合は最初の||
オペランドを返し、それ以外の場合は 2 番目のオペランドを返します。したがって、式は存在する場合$sb || {};
は値を返し、$sb
存在しない場合は新しい空のオブジェクトを作成します。
の略ですnew Object()
次の略です。
new Object()
この場合、 this meansは独自の値に設定されるか、 の場合は$sb
新しい空のオブジェクトに設定されます。$sb
undefined