
原型繼承
說到原型繼承,那就是要從原型入手,就讓我們來簡單回顧一下什么是原型吧
原型概述:每個函式身上都有一個原型,我們稱之為原型物件
函式的 prototype 屬性指向原型物件,原型物件上的 constructor 指回建構式
那么顧名思義,原型繼承那就要從原型下手啦 ! !
function Person() {
this.uname = '張三',
this.age = 22
}
// 原型物件
Person.prototype.sex = '男'
Person.prototype.head = 1
Person.prototype.sayName = function () {
console.log('hello javascript')
}
function Son() {
this.eye = 2
}
// 把建構式 Person 的實體化物件賦值給建構式 Son 的原型物件,那么在建構式 Person 原型上添加的屬性或者方法, Son的實體物件也是可以訪問到的,這正是原型鏈起到的作用
Son.prototype = new Person()
// 實體化物件
let per = new Son()
console.log(per)
// 可以訪問原型物件上添加的屬性
per.sayName()
sayName 方法定義在了建構式 Person 的原型上,而通過建構式 Son 的實體物件卻能夠訪問得到,那么 sayName 方法相當于定義在了 Son 原型物件的原型物件上,之所以 Son 的實體化物件能夠訪問得到,那正是原型鏈的功勞
通過 per.sayName() 可以在控制臺看到列印結果 'hello javascript'
上面代碼運行,列印 Son 的實體化物件 per ,可以看到如下圖, 正是 (Son.prototype = new Person()) 讓 Son 的原型物件變成了建構式 Person 的實體物件 new Person(), 而且 Person 的原型物件上也有我們自己定義的屬性方法, 并且它的 constructor 指回 建構式 Person

喜歡的小伙伴,點個贊再走唄 !!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/294496.html
標籤:其他
