gpt4 book ai didi

javascript - 主干JS : What is options || (options = {}); in Backbone source code

转载 作者:行者123 更新时间:2023-11-29 22:03:32 25 4
gpt4 key购买 nike

我正在查看 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);
};

最佳答案

但是里面有一个作业:

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

因此,如果 options 为假,则 options = { } 部分将被执行。由于 options 被指定为一个对象或 undefined(即根本没有传递),一个对象是真实的,而 undefined 是虚假的,即如果指定了 options,则表达式将不执行任何操作;如果未传递 options,则设置 options = { }。该表达式只是一种不同的写作方式:

if(!options)
options = { };

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

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

在 JavaScript 中;这两个除了 options || 什么都不做(options = { }) 有一个赋值作为副作用。大概是选项|| (options = { }) 让人想起 options ||= { } 语法,它在许多语言中都可用——但在 JavaScript 中——所以表示法Backbone 作者很容易阅读。

关于javascript - 主干JS : What is options || (options = {}); in Backbone source code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22242596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com