【发布时间】:2012-01-27 09:23:55
【问题描述】:
我有以下几点:
var Class1=function(p1,p2){
//ctor code
}
Class1.prototype={
method:function(){...},
method:function(){...}
}
我希望 Class2 成为 Class1 的成员 这样我就可以写了:
instance2=new Class1.Class2(...)
或者在 Class1 的方法中我可以写:
this.instanceOfClass2=new this.Class2(...);
我知道我可以添加:
Class1.prototype={
...,
Class2:function() {
}
}
Class1.prototype.Class2.prototype={
//Class2 methods go here
}
但是这种语法有一个缺点,就是它把 Class2 的方法放在离构造函数“很远”的地方。
我可以创建一个Class(ctor,methods) 构造函数然后使用
Class1.prototype={
...,
Class2:Class(function() {
//Class2 ctor
},
{
//Class2 methods go here
}
}
}
但是如果有更好的方法可以做到这一点,我正在徘徊。
感谢所有评论原始版本 Q 中术语使用不准确的人。
【问题讨论】:
-
我感觉 jQuery 可能不是在 javascript 中进行原型 OOP 的最佳库。
-
我的(现在恢复的)原始主题没有专门提到 jQuery。我更希望有一种我可能不知道的语法。
{ class2:ctor,class.prototype:{methods}}之类的东西(不起作用...) -
JSON 是一种数据格式。它不做类或函数,与这个问题没有任何关系。
-
很抱歉让你生气了@Quentin,我知道 JSON 是一种数据格式。在“严格”的 JOSN 中,您根本无法拥有 {a:function(){}}。但是当使用这种“对象表示法”在 javascript 中编写代码时。你可以。你怎么称呼这种语法?
标签: javascript jquery oop