【发布时间】:2018-01-19 04:24:59
【问题描述】:
我最近遇到了 JavaScript 命名空间,以及如何使用它们来创建命名空间,就像其他流行的 OOP 语言一样。我对它们的声明方式感到困惑。例如,
var myNamespace = myNamespace || {};
创建一个名为myNamespace 的命名空间(如果尚未创建)。如果已创建,只需将其传递给var myNamespace。
我很难理解 myNamespace || {} 的实际作用。
myNamespace 一开始不会是未定义的吗?您将如何在布尔表达式中进行比较。
另外,对象字面量{} 是如何工作的?它是否会创建一个空对象并将其分配给 myNamespace 以用作命名空间?
我已经尝试在 SO 上寻找答案,但是关于如何声明不同类型的命名空间的实践过于饱和。
【问题讨论】:
-
未定义 || {} === {}。是的,{} 只是一个空对象
-
||是“或”。 "如果myNamespace已经定义,则将其分配给myNamespace,否则,将myNamespace分配一个空对象。" -
这种命名空间方法已被 ES6 模块淘汰。
-
@torazaburo 那么在 ES6 中创建命名空间的最佳方法是什么?
标签: javascript namespaces javascript-namespaces