我是一个JavaScript新手,我已经想出了以下方案进行命名空间: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并且有点麻烦。
你说什么?这种方法有什么缺陷?是否有其他方法被认为更标准?
一个对象@ pimvdb漂亮的想法,但它会看起来有点奇怪与类和方法的多个扩展... – Max