可能重复:
Javascript Namespacing
我对JavaScript很陌生,想知道是否有人能给我一个很好的描述JavaScript Namespacing的含义?
还有任何资源,例如:文章等,在这个问题上非常受欢迎。
答案 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)
要快速向下(包括技术),请阅读:
答案 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中你可以将整个函数(方法)作为变量