我正在尝试通过阅读带注释的来源来更好地理解BackboneJS。
options || (options = {});
选项是传递给函数的属性,因此可能是“未定义”。我最初的想法是,如果未定义空语句,此语句将设置选项。然而,我的实验似乎告诉我情况并非如此。另外,前一行是这样的:
var attrs = attributes || {};
我认为这几乎与我所描述的相同(同时也缩短了属性名称)。
我的问题是,第一个代码段的实际目的是什么?
完整上下文为here
答案 0 :(得分:3)
这一行:
options || (options = {});
检查options
是否未定义。如果是,那么它会将新对象值分配给options
。
发生线后:
1。options
不会被定义
2.左手标志(如果存在)将被分配选项。
这与
相同 options = options || {};
这一行:
var attrs = attributes || {};
如果attributes
未定义,则将attrs
值分配给attributes
,如果未定义,则会将新对象分配给attrs
。类似于:
var attrs;
if(attributes)
attrs = attributes;
else
attrs = {};
答案 1 :(得分:1)
声明:
options || (options = {});
是:
的简写if(!options) {
options = {};
}
与同等速记相比,它更快:
options = options || {};