Javascript:部分覆盖函数而不覆盖几行代码



直截了当。 我在javascript类中有一个函数,例如

export default class gf{
iLoveThis(){
this.state.MakeMeWhole = true;
callBoyfriend();
}
}

我所做的本质上是在另一个JS文件中覆盖该方法。像这样请注意,我正在将类扩展到我的另一个组件类中

iLoveThis(){
alert('Got Laid!');
cheatOnBoyfriend();
}

有没有可能的方法让我在另一个类中覆盖该方法而不会丢失 this.state.MakeMeWhole 行?来电男朋友电话和其他部分将被覆盖。 要做的假设是,我已经在许多不同的类中实现了 ILoveThis,因此我不想在所有其他类中添加其他代码,而是修改原始方法来实现这一点。

找不到任何可行的示例来完成此操作,因为大多数示例告诉我保存该方法,覆盖它,然后在覆盖该方法后重新运行它,这将导致我修改 100 个类......

更新需要做的是

class Love {
constructor(){
this.state = 'love'
}
iLoveThis() {
this.state = 'derp'
callBoyfriend();
}
}
class Love2 extends Love{
iLoveThis() {
cheatBoyfriend();//assume method exist
console.log(this.state) // Somehow make this state as derp, means the codes in the original function are partially overwritten 
}
}

代码的信用属于在页面底部发布回复的人。 这可能吗?

我不知道这是否是你想要的,但请尝试使用extends

法典:

class Love {
constructor(){
this.state = 'love'
}
iLoveThis() {
this.state = 'derp'
}
}
class Love2 extends Love{
iLoveThis() {
console.log(this.state) // love
}
}
const l = new Love2().iLoveThis()

演示

编辑:还有另一个例子。您需要在类之间共享状态对象。首先,在包含每个类的两个文件中importshareState对象。现在,如果您设置了状态,它将更新并可共享。

import shareState from './src/shareState.js'

更新

最新更新