我知道,这经常被讨论。但是经过像19世纪以外的人一样寻找,我需要一些建议。通过声明一个“命名空间”我没有问题,但是当谈到prototype.foo函数时,我卡住了。我找到了一种方法,但我不喜欢它:使用函数原型的Javascript名称空间声明
Namespace = {}
Namespace.obj = function() {
this.foo="bar";
}
Namespace.obj.prototype.start = function() {
this.foo="fubar";
}
blah = new Namespace.obj();
blah.start();
现在,因为我在脚本的情况下有点神经质,我想有这样的事情:
Namespace = {
obj: function() {
this.foo="bar";
},
obj.prototype.start: function(tabinst) {
this.foo="fubar";
}
}
...
但随后会抛出一个错误: “未捕获的SyntaxError:意外的令牌。”
我知道,这是整容,但我认为必须有更好的方法来声明包含类和原型函数的“命名空间”。
好方法,+1。 – Jiri
Thans Amjad,这太好了。但是现在我又绊倒了。我看到它是正确的:使用这种方法不可能创建一个Namespace.blah()函数,它是从obj分离的? –
@Johnny如果我理解你的问题,只需在返回对象中添加一个'blah'函数: '。 。 012hreturn { obj:obj, obj2:obj2, blah:function(){/ * do something * /} };' –