js繼承方法之構(gòu)造函數(shù)繼承(apply)

function Animal(name){
  this.name=name
  this.say=function(){
    console.log( name + ' miao miao miao' )
  }
  this.arr= [1];//解決了原型鏈繼承,引用屬性會(huì)共享的問(wèn)題
}
Animal.prototype.eat = function(food){ //無(wú)法繼承prototype里的屬性
  console.log(this.name + '吃' + food)
}


function Cat(name){
  Animal.apply(this,arguments)
  
}

let final = new Cat('小貓');//可以向父類傳參
final.arr.push(2);
let final2 = new Cat('大貓');

console.log(final.arr) //[1,2]
console.log(final2.arr)//[1]

有個(gè)不好的地方,就是子類都有父類函數(shù)的副本(父類里this的屬性),影響性能。而且也不能通過(guò)prototype共享一些共同的方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評(píng)論 19 139
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式。簡(jiǎn)單...
    舟漁行舟閱讀 8,118評(píng)論 2 17
  • 昨天,一個(gè)一直關(guān)注著我的朋友在后臺(tái)留言給我:“看了你的雞湯文,我思考了兩天以后,決定辭職,流浪,去遠(yuǎn)方,去想去的地...
    雨天在路上閱讀 607評(píng)論 7 4

友情鏈接更多精彩內(nèi)容