关于名称空间:名称空间变量-javascript

Namespacing Variables - javascript

我看到了很多带有函数的名称空间示例,但是,这样声明变量(对我的程序来说是全局的)可以吗?

var mynamespace=mynamespace.var1=5;

还是应该将所有变量都放在命名空间内的函数中?


你应该避免全局变量…而是使用某种模块模式,例如

1
2
3
4
(function () {
  "use strict";
   var myVar = 'blob';
}());

参见http://yuiblog.com/blog/2007/06/12/module-pattern/

编辑:

更多说明:

1
2
3
4
5
6
7
8
9
10
11
var NS1 = NS1 || {};
NS1.myModule = function () {
       "use strict";
        var myVar = 'blob';
        return  {
            myPublicMethod: function () {
                return myVar;
            }
        };

 }();