Javascript ES6-使用基类的参数调用回调

Javascript ES6-使用基类的参数调用回调,javascript,ecmascript-6,es6-class,Javascript,Ecmascript 6,Es6 Class,我试图将公共功能封装在基类中,并计划从它们各自的实例调用派生类特定的函数。不知何故,我并没有在派生类中获取参数。不确定这里出了什么问题- class A { constructor(callback){ this.callback = callback; } write(){ console.log('Writing A'); this.callback(10); } } class B extends A { constructo

我试图将公共功能封装在基类中,并计划从它们各自的实例调用派生类特定的函数。不知何故,我并没有在派生类中获取参数。不确定这里出了什么问题-

class A {
  constructor(callback){
    this.callback = callback;
  }
  
  write(){
    console.log('Writing A');
    this.callback(10);
  }
  
}

class B extends A {
  
  constructor(){
    super(()=> this.read())
  }
  
  read(n){
    console.log('Read B: ' + n);
  }  
}

const b = new B();
b.write();

输出

"Writing A"
"Read B: undefined"
然而,我希望-

"Writing A"
"Read B: 10"
你有

super(()=> this.read())
回调不接受任何参数,也不向this.read传递任何内容,因此
10
会丢失

确保回调采用所需参数并传递它

A类{
构造函数(回调){
this.callback=回调;
}
写(){
console.log('writinga');
这是回调(10);
}
}
B类扩展了A类{
构造函数(){
super((n)=>此。读取(n))
}
读(n){
console.log('Read B:'+n);
}  
}
常数b=新的b();

b、 write()或者,您可以传递参数,而不必考虑转发参数:

super(this.read.bind(this));

我确实试过
super(()=>this.read(n))
但是
super(**(n)**=>this.read(n))
就是这个窍门。你抓住我了。谢谢大家!@Codie请将此帖子标记为答案,以避免其他人来此尝试解决已经解决的问题。问候语。