スーパーとは何ですか?

1.逸脱から始めましょう

class Parent {
  constructor (name) {
    console.log('this', this) // person1
    this.name = name
  }
  getName () {
    return this.name
  }
}

let person1 = new Parent('zs')

コンストラクターのこれは、クラスのインスタンスを指します

2. es6クラスの継承では、サブクラスが親クラスを拡張する場合、super()が必要であり、これを使用する前にsuper()を呼び出す必要があります。

コンストラクターで使用する場合、superキーワードは単独で表示さthisれるため、キーワードを使用する前に使用する必要があります

superキーワードを使用して、親オブジェクトの関数を呼び出すこともできます(メイン関数、親と情報を渡すため)

class Parent {
  // 父类需要接受name变量,但是实例化的时候,创建 Child 的实例,所以需要给父类传参数
  constructor (name) {
    this.name = name
  }
  getName () {
    return this.name
  }
}

class Child extends Parent {
  constructor (name, age) {
    super(name) // 1. 给父类传值, 父类需要接受name 2. 实例可以调用父类的函数
    this.age = age
  }
  getInfo () {
    return `${this.name},${this.age}`
  }
}
let child = new Child('zs', 23)
console.log(child.getInfo())
console.log(child.getName())

 

おすすめ

転載: blog.csdn.net/Luckyzhoufangbing/article/details/108654316