web-dev-qa-db-ja.com

JavaScript ES6 / ES2015サブクラスを使用するときに継承されたメソッドをオーバーライドするにはどうすればよいですか

Arrayを拡張するクラスを作成しました。継承されたプッシュ関数を呼び出す前に、任意のコードを実行したい。

class newArray extends Array{
      //execute any logic require before pushing value onto array
      this.Push(value)    
}
22
Udesh

私が見つけた解決策は、継承した関数と同じ名前を持つ新しい関数をサブクラスに作成することでした。この場合、プッシュ。次に、オーバーライド関数内で、継承された関数がsuperキーワードを介して呼び出されます。

class newArray extends Array{
    Push(value) {
        //execute any logic require before pushing value onto array
        console.log(`pushed ${value} on to array`)
        super.Push(value)
    }    
}

var array = new newArray

array.Push('new Value')
41
Udesh