javascript深入瞭解(繼承)
阿新 • • 發佈:2019-01-29
San.prototype = new Father(); 就是將例項的Father賦值給 San的原型物件,例項後的Father包含建構函式Father的屬性familyName,以及Father原型物件中的屬性,也一起賦值給了San的原型,所以例項化San的時候同時也包含了Father中的屬性。因此才實現了繼承關係.當我們s.showName();時,我很會開始在物件裡面一級級查詢,首先我們會查詢建構函式San(),我們先找San的建構函式沒有這個方法,然後又開始查詢san的原型鏈中,發現了從Father那裡繼承過來的showName();方法,於是返回。同樣的訪問順序得到familyName和name。San.prototype = new Father();的意思其實就是 將例項化Father的屬性賦值給San的原型。function Father(){ this.familyName = 'Fan'; this.name = 'aaa'; } Father.prototype.showName = function(){ alert(this.familyName+' '+this.name); } function San(){ this.name = 'Lizhi' } San.prototype = new Father(); San.prototype.showName = function(){ alert(this.name+' '+this.familyName); } var s = new San(); s.showName();//Fan Lizhi