我试图弄清楚空是什么{}意思。
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 || {};用于避免a在您已经定义的情况下进行替换a。在此模式中,或运算符:||用作合并运算符。if ais nullorundefined它将执行语句右侧的表达式:{}
使用此模式可确保您a始终将其定义为,object并且如果它已经存在,则不会被覆盖。
这是一个对象字面量。像:
var obj = { x: 4, y: 2 };
只有没有属性:
var obj = {};
如果计算结果||为非假值,则运算符返回第一个操作数,否则返回第二个操作数。所以表达式$sb || {};返回$sb如果它存在的值,否则它创建一个新的空对象。
它是的缩写new Object()
它的简称:
new Object()
在这种情况下,这意味着$sb将设置为它自己的值,或者设置为一个新的、空的对象,以防$sb是undefined。