1
var google = google || {};
google.Test = google.Test || {};
google.Test.Render = google.Test.Render || {};

上面和下面有什么区别。

var MyCompany = MyCompany || { MyApplication: { Model: {} } };

|| 的目的是什么??

4

1 回答 1

3

第一个片段测试命名空间的每个级别是否存在,如果不存在,则创建它(尽管第一行可能应该是var google = google || {};)。

第二个只测试顶层是否存在。例如:

var MyCompany = {};

// later in the same scope

var MyCompany = MyCompany || { MyApplication: { Model: {} } };

由于MyCompany已定义,因此该表达式的计算结果为MyCompany = MyCompany,即MyCompany保持为空元素,不会创建嵌套对象。如果以下代码依赖MyCompany.MyApplication' 的存在,它将失败。

||这里描述了如何工作:在 Javascript 中,当变量声明中有逻辑运算符时,这意味着什么?

于 2012-08-15T14:16:23.930 回答