我有一个JavaScript"对象",以这种方式构建:
function foo() { this.length = 0; } foo.prototype.getLength = function() { return this.length; } ...
我知道如何使用单例JavaScript对象模拟命名空间,但是什么是"命名空间"对象的最佳方法,如上面的那些将会有什么意义呢?
我知道有几个JavaScript库具有名称间距功能,但我使用的是jQuery,而不想添加其他库.我希望能够提供我自己的,也许是通过利用jQuery,我需要实例化的JS对象的内部命名空间方案.
谢谢rp
简单:
if(!MyNamespace) MyNamespace = {}; MyNamespace.foo = function() { this.length = 0; }; MyNamespace.foo.prototype.getLength = function() { return this.length; };
Javascript实际上没有像其他语言那样的命名空间或包.相反,它有闭包.如果您的应用程序包含多个函数,变量和对象,那么您应该将它们放在一个全局对象中.这将与命名空间具有相同的效果.
例如:
var namespace = { this.foo: function(){ ... }, this.foo.prototype.getLength: function(){ ... } }
您还可以创建一组嵌套对象并模拟包:
loadPackage = function(){ var path = arguments[0]; for(var i=1; i