为啥当 javascript 命名空间我们说 var myName = myName || [复制]

Posted

技术标签:

【中文标题】为啥当 javascript 命名空间我们说 var myName = myName || [复制]【英文标题】:Why when javascript namespacing do we say var myName = myName || [duplicate]为什么当 javascript 命名空间我们说 var myName = myName || [复制] 【发布时间】:2013-03-26 21:05:24 【问题描述】:

我找不到这种格式背后的原因?

我假设它是检查这个变量之前是否已创建,如果是,则取那个变量而不是空白对象。

但是当我分配它时,我想不出它是如何或为什么已经存在的。

【问题讨论】:

使用命名空间,您可能希望添加到现有命名空间中,而不是总是创建一个新命名空间。在您的情况下,这可能不是必需的,但这就是您可以使用它的原因:) 【参考方案1】:

符号完全按照您的建议执行。

这确实适用于您可能有多个可能创建相同对象的 javascript 包含的情况,并且您不想破坏可能已经定义的对象。

【讨论】:

【参考方案2】:

您的假设是正确的,如果它存在,它将默认为现有变量,否则会创建一个新对象。

没有看到代码,很难判断它之前是如何初始化的,但它通常用于可能已经被调用的模块/构造函数。目的是在执行该函数时使用“单例”而不是新实例。

【讨论】:

以上是关于为啥当 javascript 命名空间我们说 var myName = myName || [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 RequireJS 的 Javascript 命名空间,为啥?

为啥将 javascript 命名空间作为一个函数?

当内部作用域不起作用时,为啥编译器不采用命名空间名称?

为啥我们不能在一个类中声明一个命名空间?

第四节:命名空间

第四节:命名空间