我最近遇到了JavaScript Namespaces,以及如何使用它们来创建像其他流行的OOP语言一样的名称空间。我对他们如何申报感到困惑。例如,JavaScript名称空间对象文字
var myNamespace = myNamespace || {};
创建一个命名空间称为myNamespace
如果尚未创建它。如果它被创建,只需将其传入var myNamespace
。
我很难理解myNamespace || {}
究竟做了什么。
首先不确定myNamespace
?你会如何比较布尔表达式。
另外,对象字面值{}
是如何工作的?它是否创建一个空对象并将其分配给myNamespace
以作为命名空间工作?
我试过寻找关于SO的答案,但是关于如何声明不同类型的命名空间的做法存在太多饱和。
undefined || {} === {}。是的,{}只是一个空对象 – juvian
'||'是“或”。 “如果myNamespace已被定义,则将其分配给myNamespace,否则将myNamespace分配给一个空对象。 –
这种命名空间的方法已经被ES6模块所淘汰。 – 2017-08-10 19:21:27