我有一个有几个嵌套子类的类,但我不确定正确的语法应该是什么。这就是我在想的事情。它效果很好,但也许它不是最好的编码实践。
function AClass() {
this.myB = new BClass();
}
AClass.prototype.BClass() {
this.myC = new CClass();
}
AClass.prototype.BClass.prototype.CClass() {
// C constructor
}
答案 0 :(得分:1)
如果嵌套类只能与主类一起使用,则可以将它们定义为主类的(静态)属性。没有理由在每个实例上都有它们。
function MainClass() {
this.myB = new MainClass.SubClassB();
}
MainClass.SubClassB = function() {
this.myC = new MainClass.SubClassC();
}
MainClass.SubClassC = function() {
// C constructor
}
MainClass.SubClassC.prototype.sayHi = function(){
console.log('Hi from C');
}
var myInstance = new MainClass();
myInstance.myB.myC.sayHi();
*)请注意,嵌套类与主类没有继承关系。正如评论中提到的@squint,你似乎想要的模式是组合,而不是继承。