使用構造函數方法和原型鍊方法都不能很好的實作繼承,他們各有優勢,也各有劣勢,如果把他們組合在一起,是不是可以各取所長,取長補短呢?答案是可以的,這就是組合繼承
function Person(skin){
this.skin=skin
}
Person.prototype.run=function(){
console.log(“跑起來”)
}
function Chinese(native,skin){
Person.call(this,skin)
this.native=native
}
Chinese.prototype=new Person()
var p1=new Chinese(‘中國’,‘yellow’)
console.log(p1.native)
console.log(p1.skin)
p1.run()
運作結果如圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLygTM5MDMxETMxAzNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
這樣組合而成的方式實作繼承是最常見,也是能滿足我們需求的繼承方式。