JavaScriptスーパーキーワード

JavaScriptでクラスを操作するときは、superキーワード。

この投稿では、それが何に役立つのかを明確にしたいと思います。

あなたがクラスを持っているとしましょうCar

class Car {

}

このクラスにはconstructor()方法:

class Car {
  constructor() {
    console.log('This is a car')
  }
}

コンストラクターメソッドは、クラスがインスタンス化されるときに実行されるため、特別です。

const myCar = new Car() //'This is a car'

あなたは持つことができますTeslaを拡張するクラスCarクラス:

class Tesla extends Car {

}

ザ・Teslaクラスはのすべてのメソッドとプロパティを継承しましたCar、 含んでいるconstructor方法。

のインスタンスを作成できますTeslaクラス、新しい作成myCarオブジェクト:

const myCar = new Tesla()

そして、元のコンストラクターはCarまだ実行されているのでTesla独自のものはありません。

オーバーライドできますconstructor()のメソッドTeslaクラス:

class Tesla extends Car {
  constructor() {
    console.log('This is a Tesla')
  }
}

そして

const myCar = new Tesla()

印刷しますThis is a Tesla

の中にconstructor()呼び出すこともできるメソッドsuper()親クラスで同じメソッドを呼び出すには:

class Tesla extends Car {
  constructor() {
    super()
    console.log('This is a Tesla')
  }
}

呼び出し

const myCar = new Tesla()

2つのコンソールログを実行します。最初にCarクラスコンストラクターで定義されたもの、2番目にTeslaクラスコンストラクターで定義されたもの:

'This is a car'
'This is a Tesla'

Note that super() can only be called in the constructor, not in other methods.

And we can pass in any parameter, if the constructor accepts parameters.


More js tutorials: