// 抽象类
// var car = function() {}
// car.prototype = {
// getPrice: function() {
// console.error('getPrice 未实现')
// },
// }
// new car().getPrice()
// var smallCar = function() {}
// smallCar.prototype = new car()
// new smallCar().getPrice()
// var s = new smallCar()
// s.getPrice = function() {
// console.log('getPrice 已实现')
// }
// s.getPrice()
var Parent = function(child,fnName) {
if(typeof Parent[fnName] === 'function') {
function F() {}
F.prototype = new Parent[fnName]()
// child.constructor = child // 多余
child.prototype = new F()
} else {
throw new Error('不存在此抽象类')
}
}
Parent.car = function() {
this.name = '越野车'
}
Parent.car.prototype = {
getName() {
throw new Error('抽象方法不可调用')
}
}
function smallCar() {}
Parent(smallCar,'car')
const sc = new smallCar()
sc.getName()
console