'JavaScript Namespacing'是什么意思?

时间:2011-12-15 16:20:55

标签: javascript namespaces javascript-namespaces

  

可能重复:
  Javascript Namespacing

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

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

4 个答案:

答案 0 :(得分:39)

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

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

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

MyApplication.myFunc();

同样,var1始终以:

的形式访问
console.log(MyApplication.var1);

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

答案 1 :(得分:8)

要快速向下(包括技术),请阅读:

Namespacing in JavaScript

答案 2 :(得分:6)

我使用此命名空间技术,以及Crockford

概述的“use strict”
var MyNamespace = (function () {
    "use strict"; 

    function SomeOtherFunction() {

    }

    function Page_Load() {

    }

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

MyNamespace.Page_Load();

答案 3 :(得分:2)

阅读简单教程Here

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

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