BackboneJS:什么是选项 || (选项={});在主干源代码中

2023-12-07

我正在浏览 BackboneJS 源代码,无法弄清楚这一行是什么
options || (options = {});确实如此,因为没有对变量进行赋值。

以下是 BackboneJS 的代码片段。

  var Model = Backbone.Model = function(attributes, options) {
    var attrs = attributes || {};
    options || (options = {});
    this.cid = _.uniqueId('c');
    this.attributes = {};
    if (options.collection) this.collection = options.collection;
    if (options.parse) attrs = this.parse(attrs, options) || {};
    attrs = _.defaults({}, attrs, _.result(this, 'defaults'));
    this.set(attrs, options);
    this.changed = {};
    this.initialize.apply(this, arguments);
  };

但有is那里有一个作业:

options || (options = {});
//          ^^^^^^^^^^^^ Right there

So if options是假的,则options = { }部分将被执行。自从options被指定为一个对象或undefined(即根本没有通过),一个对象是真实的,并且undefined是假的,如果options已指定并设置options = { } if options没有通过。该表达式只是一种不同的书写方式:

if(!options)
    options = { };

请记住,表达式也可以作为 JavaScript 中的语句,因此您可以这样说:

1 + 2;
'where is' + ' pancakes house?';

在 JavaScript 中;这两个人什么也没做,但是options || (options = { })有一个副作用作为分配。想必options || (options = { })令人回想起options ||= { }许多语言都可用的语法 - 但是not在 JavaScript 中——因此 Backbone 作者很容易阅读该符号。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BackboneJS:什么是选项 || (选项={});在主干源代码中 的相关文章

随机推荐

  • WPF 中的最小化窗口位置

    我试图将自定义对话框的位置保存到用户注册表中 以便当他们重新加载同一对话框时 它会出现在他们之前移动或调整其大小的同一位置 我正在保存窗口的 X 位置 Y 位置宽度和高度 除了最小化对话框外 一切正常 如果对话框最小化并且用户右键单击任务栏
  • 使用 env var 作为选择参数值的声明式管道

    免责声明 我可以使用 Active Choices 插件实现我正在寻找的行为 但我真的希望它能够在 Jenkinsfile 中工作并由 scm 控制 因为在我们可能需要的每个作业上配置 Active Choices 是很乏味的 由于它与 J
  • Equinox (OSGi) 和 JPA/Hibernate - 查找实体

    我正在尝试在 OSGi Equinox 环境中使用 Hibernate Spring 如果我明确地将其指向 Persistence xml 中的实体类 效果会很好
  • 检测何时创建新的虚拟驱动器

    我怎么知道什么真地穴卷安装在计算机上吗 Note我已经知道可以挂载哪些文件了 换句话说 唯一可以安装的卷是 C Vol1 tc C Vol2 tc and C Vol3 tc 我如何知道卷何时被卸载 我设法通过使用 net 类来做到这一点F
  • 指令中未收到广播

    我的控制器之间存在父子控制器关系
  • 仅当使用列列表且 IDENTITY_INSERT 为 ON 时,才能指定表“Table”中标识列的显式值

    有人知道这个错误是什么 仅当使用列列表且 IDENTITY INSERT 为 ON 时 才能指定表 HD AANVRAAG FASE 中标识列的显式值 描述 执行当前 Web 请求期间发生未处理的异常 请查看堆栈跟踪以获取有关错误及其在代码
  • 如何使用VBA为大文件生成md5哈希值?

    我有以下函数来生成文件的 md5 哈希值 这些函数非常适合小文件 但会崩溃并生成运行时错误 7 内存不足当我尝试对超过 250 MB 的文件进行哈希处理时 我实际上不知道它会破坏到哪个确切大小 但低于 200 MB 的文件工作正常 我不明白
  • PHP 中的“无法在写入上下文中使用函数返回值”错误

    致命错误 无法使用函数返回 第 3 行写入上下文中的值 在什么情况下会触发此类错误 我的程序 QUERY VARIABLE query select form user where user name user name and user
  • 使用自定义角度指令扩展 ng-bootstrap popover 组件

    我试图实现的是扩展 ngbPopover 指令并将所有这些属性包装在自定义指令中 而不是仅显示它们以包含我的指令 例如 我正在使用 ngbpopover 如下所示
  • 如何将模块添加到项目的 Eclipse Oxygen 模块路径?

    我有一个项目 今天有几个罐子作为 参考库 相反 我想将它们添加为模块路径上的自动模块 这样我就可以在我的 module info java 中需要它们 如何将 jar 添加到 Eclipse Oxygen 中的模块路径 以下是我如何让它工作
  • 文档正文为空

    我有一个正在使用 Mootools 1 2 4 的页面MediaboxAdvanced作为灯箱 由于特定的 javascript 错误 我似乎无法让该功能正常工作 文档正文为空 Mediabox 初始化时 document body ado
  • Process.Start 的 VB 6 等效项是什么?

    我真的被这一行困住了 在 vb net 中这很容易 但是在 vb6 中如何做到这一点 试图从谷歌搜索几个小时 但一无所获 感觉几乎很尴尬 这是代码 网 Process Start runme exe parameter1 parameter
  • MATLAB 中的特征选择方法?

    我正在尝试在 MATLAB 中使用 SVM 进行一些文本分类 并且真的很想知道 MATLAB 是否有任何特征选择方法 Chi Sq MI 因为我想尝试各种方法并保持最好的方法 我没有时间全部实施 这就是我在 MATLAB 中寻找此类方法的原
  • NetConnection.Call.Failed 在 Flex3/Tomcat/BlazeDS/Spring 中偶尔发生

    我有一个很大的问题 我使用 Flex3 Tomcat BlazeDS Spring 编写了一个大型应用程序 该应用程序在本地开发时运行良好 在部署到公共开发环境时运行良好 但在部署到我们的测试环境时经常失败 当远程处理请求花费大量时间 超过
  • 在每个套接字的基础上调整 MTU?

    我想知道是否有任何方法可以调整 在 Linux 系统上 给定套接字的 MTU 使 IP 层分段成小于实际设备 MTU 的块 当我说对于给定的套接字时 我并不是指在拥有该套接字的应用程序代码中以编程方式 而是在外部 例如通过 sysfs 条目
  • 我可以更改 json_encode 的默认选项吗

    我在 PHP 文档中找不到任何与此相关的内容 因此如果不将 json encode 包装在专有函数中 这可能是不可能的 但我想知道是否可以在 php ini 或其他地方设置 json encode 函数的默认选项 目的是始终启用 JSON
  • iOS6 - 在应用程序内购买并从 Apple 服务器下载

    我能够成功进行应用内购买并从 Apple 服务器下载内容并使用它 我的应用内购买内容是非消耗性的 所以我在我的应用程序中提供 恢复 按钮现在 当用户按下 恢复 按钮时 我将调用该方法 restoreCompletedTransactions
  • 将图像转换为颜色数组

    我在 Java 中加载图像并希望将其转换为 RGB 数组 以便我可以读取每个像素的颜色 我在谷歌上搜索 但我只找到了如何将颜色数组转换为图像 以下几行说明了 API 方法的用法 BufferedImage bi ImageIO read n
  • 字典的深层复制在 Xcode 4.2 中给出分析错误

    我在 NSDictionary 类别中有以下方法来进行深度复制 效果很好 我刚刚从 Xcode 4 1 升级到 4 2 Analyze 函数针对此代码给出了两个分析器警告 如下所示 id deepCopy id dict NSMutable
  • BackboneJS:什么是选项 || (选项={});在主干源代码中

    我正在浏览 BackboneJS 源代码 无法弄清楚这一行是什么options options 确实如此 因为没有对变量进行赋值 以下是 BackboneJS 的代码片段 var Model Backbone Model function