var google = google || {};
google.Test = google.Test || {};
google.Test.Render = google.Test.Render || {};
上面和下面有什么区别。
var MyCompany = MyCompany || {
MyApplication: {
Model: {}
} };
|| 的目的是什么??
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
' 的存在,它将失败。
||
这里描述了如何工作:在 Javascript 中,当变量声明中有逻辑运算符时,这意味着什么?