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/

10-10 23:44