javascript - 主干命名空间

标签 javascript backbone.js

我正在尝试从《开发 Backbone.js 应用程序》一书中学习 Backbone 。
它描述了臭名昭著的 TodoMVC 应用程序,我也在几个在线教程中查看过该应用程序。

我似乎找不到任何关于这行代码含义的解释:

var app = app || {} ;

在书中,模型、 View 、集合、路由器的代码被分割成单独的文件,并放置在相应的文件夹中。每个文件都以此代码开头,但没有解释为什么它以此开头。我认为这是某种命名空间,而 || 是逻辑或运算符,但坦率地说,我不知道他们在这里想要完成什么。

谁能帮我解答一下?
瓦利肯

最佳答案

在构建应用程序的某个时刻,您可能希望异步加载文件,这意味着您无法控制文件的解释顺序,因此您的 app 变量何时声明。

使用var app = app || {} ; 可让您在 Loose Augmentation 上使用变体模式:您可以将此语句粗略地翻译为如果应用程序已声明,则保留它,如果没有创建一个新对象并使用它

并参见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators有关此声明的内部工作原理的解释:

The && and || operators actually return the value of one of the specified operands, so if these operators are used with non-Boolean values, they may return a non-Boolean value.

关于javascript - 主干命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264817/

相关文章:

javascript - Backbone : Why assign `$(' #footer' )` to ` el`?

javascript - 单击 Bootstrap 文本输入中的图标

javascript - Polymer 1.0 观察阵列

javascript - 尝试将对象添加到主干集合时,此模型未定义

caching - 如何清除Backbone关系型缓存?

javascript - 为什么 Backbone 模型构造函数中有一个额外的变量?

javascript - 如何检测文本框的内容已更改

javascript - 通过 id 在 schema 中搜索数组

javascript - Angular JS 的跨源请求被阻止

backbone.js - Backbone "reset"收集触发器未触发