繼承
程式中的繼承: 子類可以繼承父類的一些屬性和方法
class Father { //父類
constructor () {
}
money () {
console.log(100)
}
}
class Son extends Father { //子類繼承父類
}
let son = new Son()
son.money() // 100
son.
super關鍵字
super關鍵字用于訪問和呼叫物件父類上的函式,可以通過呼叫父類的建構式,也可以呼叫父類的普通函式
class Father { //父類
constructor (x, y) {
this.x = x
this.y = y
}
money () {
console.log(100)
}
sum () {
console.log(this.x + this.y)
}
}
class Son extends Father { //子類繼承父類
constructor (x, y) {
super(x, y) //呼叫了父類中的建構式
}
}
let son = new Son(1,2)
son.sum() // 3
son.
繼承的特點:
- 繼承中,如果實體化子類輸出一個方法,先看子類有沒有這個方法,如果有就先執行子類,(就近原則)
- 繼承中,如果子類里面沒有,就去查找父類有沒有這個方法,如果有,就執行父類的這個方法
- 在子類中,可以用super呼叫父類元素的方法
class Father {
say() {
return '我是父元素'
}
sing() {
return '父元素唱一首歌'
}
}
class Son extends Father {
say() {
console.log('我是子元素')
}
sing() {
console.log(super.sing())
}
}
var son = new Son()
son.say() //我是子元素
son.sing() //
子元素可以繼承父元素的方法的同時,子元素也可以擴展自己的其他方法,子類在建構式中用super呼叫父類的構造方法時候,必須放在子類的this之前呼叫
class Father {
constructor(x, y) {
this.x = x
this.y = y
}
sum() {
console.log(this.x + this.y)
}
}
class Son extends Father {
constructor(x,y) {
//利用super 呼叫父類的建構式
super(x,y)
this.x = x
this.y = y
}
subtract() {
console.log(this.x - this.y)
}
}
let son = new Son(5,3)
son.subtract() // 2
son.sum() //8
ES6中的類和物件的4個注意點:
- 在ES6中類沒有變數提升,所以必須先定義類,才能通過類實體化物件
- 類里面的共有屬性和方法一定要加this使用
- 類里面的this指向問題
- constructor里面的this指向實體物件,方法里面的this向這個方法的呼叫者
總結
這篇文章主要分享了,關于類的繼承、繼承需要的用到的extends,super、ES6中的類和物件的注意點等,
如果想了解更多,請掃描二維碼

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/146962.html
標籤:JavaScript
