【发布时间】:2014-07-05 22:25:37
【问题描述】:
我看到很多带有函数的命名空间示例,但是可以吗?以这种方式声明变量(对我的程序来说是全局的)?
var mynamespace = {}; 我的命名空间.var1 = 5;
还是应该将所有变量都放在命名空间内的函数中?
【问题讨论】:
-
这取决于您认为可以在全局命名空间中拥有什么(如果有的话)
标签: javascript namespaces
我看到很多带有函数的命名空间示例,但是可以吗?以这种方式声明变量(对我的程序来说是全局的)?
var mynamespace = {}; 我的命名空间.var1 = 5;
还是应该将所有变量都放在命名空间内的函数中?
【问题讨论】:
标签: javascript namespaces
您应该避免使用全局变量... 改用某种模块模式,例如
(function () {
"use strict";
var myVar = 'blob';
}());
见http://yuiblog.com/blog/2007/06/12/module-pattern/
编辑:
更多说明:
var NS1 = NS1 || {};
NS1.myModule = function () {
"use strict";
var myVar = 'blob';
return {
myPublicMethod: function () {
return myVar;
}
};
}();
【讨论】: