var VehicleFactory =function (subType,superType) {
if(typeof VehicleFactory[superType]==='function'){
//开始复制父类给子类
subType.constructor=subType;
subType.prototype=new VehicleFactory[superType]();
}else{
return new Error("无父类抽象方法");
}
}
VehicleFactory.Bus=function () {
this.type="Bus"
}
VehicleFactory.Bus.prototype={
getSpeed:function () {
return new Error("抽象的");
},
getPrice:function () {
return new Error("抽象的")
}
}
$(function () {
var Lushan=function (price,speed) {
this.price=price;
this.speed=speed;
}
VehicleFactory(Lushan,'Bus');
Lushan.prototype.getPrice=function () {
return this.price;
}
var lus=new Lushan(20,20)
alert(lus.getPrice())
})
这个模式归根到底可以认为是子类将父类的对象复制,然后在子类中实现,这样的好处是相同的东西放到父节点里,子节点里负责特异化并实现抽象的内容,就可以生产出一堆东西
代码难以理解:

本文深入探讨了JavaScript中的一种继承模式,通过子类复制父类对象的方式实现,将共通属性和方法放置于父类,子类负责特异化实现。以VehicleFactory为例,展示了Bus子类如何继承并实现具体的价格和速度属性。
9576

被折叠的 条评论
为什么被折叠?



