【问题标题】:Namespacing Variables - javascript命名空间变量 - javascript
【发布时间】:2014-07-05 22:25:37
【问题描述】:

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

var mynamespace = {}; 我的命名空间.var1 = 5;

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

【问题讨论】:

标签: javascript namespaces


【解决方案1】:

您应该避免使用全局变量... 改用某种模块模式,例如

(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;
            }
        };

 }();

【讨论】:

  • 那么什么是“使用严格”?那是我选择的命名空间名称吗?这会在没有任何其他代码的情况下创建名称空间吗?我去了博客但没有使用,因为我没有使用雅虎,我仍然有些困惑。你是说上面的函数没有 var myNS = (function..., 是在代码中如图所示?
  • "use strict" 与模块模式或全局变量无关,但我添加了它,因为它是一个好习惯。它告诉浏览器只使用 javascript 的“好的部分”。 yuiblog.com/blog/2010/12/14/strict-mode-is-coming-to-town
  • 'user strict' 是一个 javascript 浏览器指令,它告诉浏览器不允许错误的 js 并进行一些其他类型的优化。
  • 好的,这可能是一个更好的方法。假设我想为整个项目创建一个命名空间......主命名空间,它被称为“NS1”。请用代码给我看这个,我想我会得到它(使用自调用函数方法)。提前谢谢。
猜你喜欢
  • 2017-01-04
  • 1970-01-01
  • 1970-01-01
  • 2013-08-17
  • 2012-01-21
  • 2012-08-13
  • 2012-03-13
  • 1970-01-01
  • 2015-04-22
相关资源
最近更新 更多