У меня есть что-то вроде следующего:
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
}
но этот синтаксис имеет недостаток в том, что он помещает методы класса 2 «далеко» от конструктора.
Я мог бы создать Class(ctor,methods)
конструктор и затем использовать
Class1.prototype={
...,
Class2:Class(function() {
//Class2 ctor
},
{
//Class2 methods go here
}
}
}
но бродил, если есть лучший способ сделать это.
Спасибо всем, кто прокомментировал неточность использования терминов в оригинальной версии Q.