3

我试图弄清楚空是什么{}意思。

var $sb = $sb || {};

这是否意味着变量 $sb 的值要么被复制到自身,要么是一个函数文字?

完整的上下文:

var $sb = $sb || {};
$sb.xxx = function() {
    // code
}
4

5 回答 5

5

这是快捷方式

new Object()

所以这条线

var $sb = $sb || {};

将检查变量是否$sb存在,如果不存在则创建新对象并将其分配给$sb变量。

所以用其他方式你可以这样写:

if( !$sb ) {
    var $sb = new Object();
}
于 2012-12-17T14:39:01.103 回答
4

var a = {}称为对象字面量表示法。它比它更快,var a = new Object()因为它不需要范围解析(即您可以定义一个具有相同名称的构造函数,因此 JavaScript 引擎必须进行这样的查找)。

该模式var a = a || {};用于避免a在您已经定义的情况下进行替换a。在此模式中,或运算符:||用作合并运算符。if ais nullorundefined它将执行语句右侧的表达式:{}

使用此模式可确保您a始终将其定义为,object并且如果它已经存在,则不会被覆盖。

于 2012-12-17T14:46:58.090 回答
2

这是一个对象字面量。像:

var obj = { x: 4, y: 2 };

只有没有属性:

var obj = {};

如果计算结果||为非假值,则运算符返回第一个操作数,否则返回第二个操作数。所以表达式$sb || {};返回$sb如果它存在的值,否则它创建一个新的空对象。

于 2012-12-17T14:40:13.730 回答
1

它是的缩写new Object()

于 2012-12-17T14:38:51.783 回答
1

它的简称:

new Object()

在这种情况下,这意味着$sb将设置为它自己的值,或者设置为一个新的、空的对象,以防$sbundefined

于 2012-12-17T14:40:58.123 回答