直截了当。 我在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()
演示
编辑:还有另一个例子。您需要在类之间共享状态对象。首先,在包含每个类的两个文件中import
shareState
对象。现在,如果您设置了状态,它将更新并可共享。
import shareState from './src/shareState.js'
更新