什么是'选项|| (options = {})'做什么?

时间:2014-12-22 17:18:56

标签: javascript backbone.js

我正在尝试通过阅读带注释的来源来更好地理解BackboneJS

options || (options = {});

选项是传递给函数的属性,因此可能是“未定义”。我最初的想法是,如果未定义空语句,此语句将设置选项。然而,我的实验似乎告诉我情况并非如此。另外,前一行是这样的:

var attrs = attributes || {};

我认为这几乎与我所描述的相同(同时也缩短了属性名称)。

我的问题是,第一个代码段的实际目的是什么?

完整上下文为here

2 个答案:

答案 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 || {};