var google = google || {};
google.Test = google.Test || {};
google.Test.Render = google.Test.Render || {};
上面和下面之间的区别是什么。
var MyCompany = MyCompany || { MyApplication: { Model: {} } };
||的目的是什么? ?
最佳答案
第一个代码段测试名称空间的每个级别是否存在,如果不存在,它将创建它(尽管第一行可能应该是var google = google || {};
)。
第二个仅测试顶级是否存在。例如:
var MyCompany = {};
// later in the same scope
var MyCompany = MyCompany || { MyApplication: { Model: {} } };
由于已经定义了
MyCompany
,因此该表达式的计算结果为MyCompany = MyCompany
,即MyCompany
保留为空元素,因此不会创建嵌套对象。如果以下代码依赖MyCompany.MyApplication
的存在,它将失败。||
的工作方式在此处描述:In Javascript, what does it mean when there is a logical operator in a variable declaration?关于javascript - JavaScript namespace /最佳做法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11970906/