'JavaScript Namespacing'是什么意思?

bc1*_*c17 25 javascript namespaces javascript-namespaces

可能重复:
Javascript命名空间

我是JavaScript的新手,想知道是否有人能给我一个很好的描述JavaScript Namespacing的含义?

此外,在该主题上也非常感谢任何资源,例如文章等.

Mic*_*ski 39

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

var MyApplication = {
  var1: someval,
  var2: someval,
  myFunc: function() {
    // do stuff
  }
};
Run Code Online (Sandbox Code Playgroud)

然后,不是myFunc()全局调用,它总是被称为:

MyApplication.myFunc();
Run Code Online (Sandbox Code Playgroud)

同样,var1始终访问为:

console.log(MyApplication.var1);
Run Code Online (Sandbox Code Playgroud)

在此示例中,我们所有应用程序的代码都已在命名空间内部MyApplication.因此,我们的变量不太可能与其他库创建的或由DOM创建的变量发生冲突.


Jus*_*ner 8

要快速运行(包括技术),请阅读:

JavaScript中的命名空间


Caf*_*eek 6

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

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

    function SomeOtherFunction() {

    }

    function Page_Load() {

    }

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

MyNamespace.Page_Load();
Run Code Online (Sandbox Code Playgroud)


Mih*_*gos 3

阅读这里的简单教程

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

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