我是一个 javascript 新手,我想出了以下命名空间方案:
(function() {
var ns = Company.namespace("Company.Site.Module");
ns.MyClass = function() { .... };
ns.MyClass.prototype.coolFunction = function() { ... };
})();
Company.namespace 是一个由脚本注册的函数,它简单地创建直到模块的对象链。
外部,在非全局范围内:
var my = new Company.Site.Module.MyClass();
我特别询问我ns
从全局范围隐藏变量的方法 - 通过立即执行的包装匿名函数。我可以在Company.Site.Module
任何地方写,但与将 ns 存储在局部变量中相比,它不是 DRY 并且有点混乱。
你说什么?这种方法有什么陷阱?还有其他一些被认为更标准的方法吗?