我正在尝试从《开发 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/