Udesh
Udesh

Reputation: 2071

How do I override inherited methods when using JavaScript ES6/ES2015 subclassing

I have created a class that extends Array. I want to execute arbitrary code before calling the inherited push function.

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

Upvotes: 46

Views: 55441

Answers (1)

Udesh
Udesh

Reputation: 2071

The solution I found was to create a new function in the subclass that has the same name as the inherited function. In this case push. Then inside the overriding function the inherited function is called via the super keyword.

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')

Upvotes: 87

Related Questions