web-dev-qa-db-fra.com

Comment remplacer les méthodes héritées lors de l'utilisation du sous-classement JavaScript ES6 / ES2015

J'ai créé une classe qui étend Array. Je veux exécuter du code arbitraire avant d'appeler la fonction Push héritée.

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

La solution que j'ai trouvée était de créer une nouvelle fonction dans la sous-classe qui porte le même nom que la fonction héritée. Dans ce cas, appuyez sur. Ensuite, à l'intérieur de la fonction prioritaire, la fonction héritée est appelée via le super mot clé.

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