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

百般思念 提交于 2019-12-20 16:49:15

问题


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

回答1:


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


来源:https://stackoverflow.com/questions/39886830/how-do-i-override-inherited-methods-when-using-javascript-es6-es2015-subclassing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!