Javascript 主干名称空间
我试图从《开发主干网应用程序》一书中学习主干网。Javascript 主干名称空间,javascript,backbone.js,Javascript,Backbone.js,我试图从《开发主干网应用程序》一书中学习主干网。 它描述了臭名昭著的TodoMVC应用程序,我也在一些在线教程中查看了它 我似乎找不到任何关于这行代码含义的解释: var app = app || {} ; 在这本书中,模型、视图、集合和路由器的代码被分割成单独的文件,并放在相应的文件夹中。每个文件都以这段代码开头,但没有解释为什么它以这段代码开头。我假设这是某种名称空间,而|是逻辑Or运算符,但坦率地说,我不知道他们在这里试图实现什么 有谁能启发我吗? Valleyken通常这样做是为了在未
它描述了臭名昭著的
TodoMVC
应用程序,我也在一些在线教程中查看了它
我似乎找不到任何关于这行代码含义的解释:
var app = app || {} ;
在这本书中,模型、视图、集合和路由器的代码被分割成单独的文件,并放在相应的文件夹中。每个文件都以这段代码开头,但没有解释为什么它以这段代码开头。我假设这是某种名称空间,而|
是逻辑Or运算符,但坦率地说,我不知道他们在这里试图实现什么
有谁能启发我吗?Valleyken通常这样做是为了在未传递局部变量时为其设置默认值:
function(arg){
var arg = arg || {};
console.log(arg);
}
如果传递了arg,则将局部变量arg设置为传递的对象,否则将通过{}创建一个新对象,并将局部arg变量设置为该对象
请参阅:通常这样做是为了在未传递局部变量时为其设置默认值:
function(arg){
var arg = arg || {};
console.log(arg);
}
如果传递了arg,则将局部变量arg设置为传递的对象,否则将通过{}创建一个新对象,并将局部arg变量设置为该对象
请参阅:在构建应用程序的某个时候,您可能希望异步加载文件,这意味着您无法控制文件的解释顺序以及声明
应用程序的变量的时间
使用var-app=app | |{}
允许您在模式上使用变量:您可以大致将此语句转换为如果应用程序已声明,则保留它,如果未声明,则创建新对象并使用它
有关此语句内部工作原理的解释,请参阅:
&&和| |运算符实际上返回
指定的操作数,因此如果这些运算符与非布尔运算符一起使用
值,则它们可能返回非布尔值
在构建应用程序的某个时候,您可能希望异步加载文件,这意味着您无法控制文件的解释顺序,从而无法控制何时声明app
变量
使用var-app=app | |{}
允许您在模式上使用变量:您可以大致将此语句转换为如果应用程序已声明,则保留它,如果未声明,则创建新对象并使用它
有关此语句内部工作原理的解释,请参阅:
&&和| |运算符实际上返回
指定的操作数,因此如果这些运算符与非布尔运算符一起使用
值,则它们可能返回非布尔值
这允许您创建空对象,将所有Javascript对象存储在其中。(名称空间)保持对象有组织且不在窗口上(全局名称空间)
||{}
只是防止您在javascript文件的加载顺序发生变化时意外地将名称空间设置为空对象。在将对象设置为{}
这允许您创建空对象,将所有Javascript对象存储在其中。(名称空间)保持对象有组织且不在窗口上(全局名称空间)
||{}
只是防止您在javascript文件的加载顺序发生变化时意外地将名称空间设置为空对象。在将对象设置为{}