【发布时间】:2019-11-28 20:03:59
【问题描述】:
我很想在 js 中使用重新分配 this 的类来实现多态性。
我有一个类简化为:
class First{
method1 = function(aVar) { this.list.map (e => e === aVar)}
}
和另一个已经从另一个父类继承的类:
class Second extends Parent{
constructor(){
this.list = ['some elements'];
this.method1 = First.method1.apply(this, arguments)
}
Parent 不能从 First 扩展; 当我运行 Second 时,它会抛出一个错误:apply 不能应用于 method1 因为它是 undefiend, 但是当我创建一个实例时,它会丢失 Second's this 范围:
class Second extends Parent{
constructor(){
this.list = ['some elements'];
this.method1 = (new First).method1.apply(this, arguments)
}
我还需要为 First.method1 提供参数
我试过这个answer,但没用
【问题讨论】:
-
不要使用类字段来定义方法,而是使用普通的方法定义。
-
你到底想在你的
Second课堂上用method1做什么?请同时显示预期用途。目前还不清楚那些arguments在那里做什么(First的method1甚至不接受任何东西),以及你期望this.list解决什么问题。
标签: javascript ecmascript-6 es6-class