【发布时间】:2017-05-09 10:52:44
【问题描述】:
直截了当。 我在 javascript 类 E.G 中有一个函数
export default class gf{
iLoveThis(){
this.state.MakeMeWhole = true;
callBoyfriend();
}
}
而我所做的实际上是在另一个 JS 文件中覆盖该方法。像这样请注意,我正在将该类扩展到我的其他组件类中
iLoveThis(){
alert('Got Laid!');
cheatOnBoyfriend();
}
有什么方法可以让我在另一个类中覆盖该方法而不会丢失 this.state.MakeMeWhole 行? callBoyfriend 通话和其他部分将被覆盖。 假设我已经在许多不同的类中实现了 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
}
}
代码的功劳属于在页面底部发布回复的人。 这可能吗?
【问题讨论】:
-
"我已经在许多不同的类中实现了 ILoveThis" - 那么您将需要在许多不同的类中分别覆盖它,这是没有办法的。当然,您本来可以通过更好的设计来避免这种情况。而且您可以通过编程方式完成,无需接触 100 个文件。
-
“我已经在许多不同的类中实现了 ILoveThis” - 你的意思是其他类引用了原始方法,还是你复制了显示的源代码进入其他课程?
-
@nnnnnn 我将原来的类扩展成我的新子类
-
如果你扩展类没问题,你只需要覆盖超类中的方法,就像你找到的所有例子告诉你的那样。试试看!并在它不起作用时发布您尝试的代码。
-
更新问题
标签: javascript jquery html reactjs