“JavaScript 命名空间”是啥意思? [复制]

Posted

技术标签:

【中文标题】“JavaScript 命名空间”是啥意思? [复制]【英文标题】:What is meant by 'JavaScript Namespacing'? [duplicate]“JavaScript 命名空间”是什么意思? [复制] 【发布时间】:2012-01-21 08:01:26 【问题描述】:

可能重复:javascript Namespacing

我对 JavaScript 很陌生,想知道是否有人可以很好地描述 JavaScript 命名空间的含义?

还有任何资源,例如文章等,在这个主题上非常受欢迎。

【问题讨论】:

可能重复:***.com/questions/7684452/javascript-namespacing OR ***.com/questions/7712231/javascript-and-namespacing 看看这个问题:***.com/questions/5231088/… 【参考方案1】:

JavaScript 的设计方式使得创建可能以负面方式交互的全局变量非常容易。命名空间的做法通常是创建一个对象字面量来封装自己的函数和变量,以免与其他库创建的发生冲突:

var MyApplication = 
  var1: someval,
  var2: someval,
  myFunc: function() 
    // do stuff
  
;

然后不是全局调用myFunc(),而是始终调用为:

MyApplication.myFunc();

同样,var1 始终访问为:

console.log(MyApplication.var1);

在这个例子中,我们所有的应用程序代码都在MyApplication 中命名空间。因此,我们的变量与其他库创建的或 DOM 创建的变量发生冲突的可能性要小得多。

【讨论】:

【参考方案2】:

我使用这种命名空间技术,以及Crockford 概述的“使用严格”

var MyNamespace = (function () 
    "use strict"; 

    function SomeOtherFunction() 

    

    function Page_Load() 

    

    return  //Expose 
        Page_Load: Page_Load,
        SomeOtherFunction: SomeOtherFunction
    ;
 ());

MyNamespace.Page_Load();

【讨论】:

【参考方案3】:

阅读一个简单的教程Here

命名空间用于避免污染全局命名空间(没有window.variables)。实际上,每个命名空间只是一个大变量,它有很多属性和方法。

会发生这种情况,因为在 javascript 中,您可以将整个函数(方法)作为变量

【讨论】:

链接已失效。也许使用来自archive.org的this one?

以上是关于“JavaScript 命名空间”是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

components是啥意思

bread是啥意思?

drawer是啥意思?

Thing是啥意思

having是啥意思?

Bread是啥意思 具体用法都有哪些