JavaScript 语法:空 {}

3
我正在试图弄清楚空的 {} 是什么意思。
var $sb = $sb || {};

这是否意味着变量 $sb 的值要么复制给自己,要么是函数字面值?
var $sb = $sb || {};
$sb.xxx = function() {
    // code
}
5个回答

5

这是一个缩写,意为

new Object()

所以这行代码
var $sb = $sb || {};

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

因此,您也可以这样写:

if( !$sb ) {
    var $sb = new Object();
}

4
var a = {} 被称为对象字面量表示法。它比 var a = new Object() 更快,因为它不需要作用域解析(即您可以定义一个具有相同名称的构造函数,因此JavaScript引擎必须执行这样的查找)。
模式var a = a || {}; 用于避免替换已经定义的 a。在此模式中,或运算符:|| 作为合并运算符。如果anullundefined,则会执行语句右侧的表达式:{} 使用这种模式可确保将始终将a 定义为一个object,并且如果它已经存在,则不会被覆盖。

2

这是一个对象字面量。例如:

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

只有没有属性:

var obj = {};
|| 运算符会返回第一个操作数,如果它的值为真,否则返回第二个操作数。因此,表达式 $sb || {}; 会返回 $sb 的值(如果它存在),否则创建一个新的空对象。

1

new Object()是“新对象”的缩写。


1

这是缩写,意思是:

new Object()

在这种情况下,这意味着$sb将被设置为其自身的值,或在$sb未定义的情况下设置为空的新对象。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接