【问题标题】:What does 'options || (options = {})' do? [duplicate]'options || 是什么意思(options = {})' 做什么? [复制]
【发布时间】:2014-12-22 17:18:55
【问题描述】:

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

options || (options = {});

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

var attrs = attributes || {};

我相信这与我所描述的差不多(同时也缩短了属性名称)。

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

完整的上下文是here

【问题讨论】:

  • options || (options = {});options = options || {}; 相同。如果未定义,只需将其设为空对象

标签: javascript backbone.js


【解决方案1】:

这一行:

   options || (options = {});

检查options 是否未定义。如果是,那么它将一个新的对象值分配给options

该行出现后:

1.options 不会是未定义的。
2.左手标志(如果存在)将分配选项。

这个和

一样

options = options || {};


这一行:

var attrs = attributes || {};

如果attributes 未定义,则将attributes 值分配给attrs,如果未定义,则将新对象分配给attrs。类似于:

var attrs;
if(attributes)
   attrs = attributes;
else
  attrs = {};

【讨论】:

    【解决方案2】:

    声明:

    options || (options = {});
    

    是以下的简写:

    if(!options) {
        options = {};
    }
    

    与同等速记相比,它更快:

    options = options || {};
    

    【讨论】:

      猜你喜欢
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 2012-08-31
      • 2013-03-10
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多