javascript – ES6从另一个方法调用一个方法

参见英文答案 > How to access the correct `this` inside a callback?                                    10个
我是ES6语法的新手,我原来的代码有更多的实现,但我已经简化了.我收到一个错误,说无法读取未定义的属性’Method2′.我在这做错了什么?我是否必须进行任何绑定调用.

class Class1 {
  constructor() {      
     eventbus.subscribe(this.Method1);  
    }

  Method1() {
   this.Method2(); 
  }

  Method2(){    
  }  
}
最佳答案
你需要做eventbus.subscribe(this.Method1.bind(this));

由于您要将方法关联到其他位置运行,因此您将确定它将在哪个范围内运行.强制绑定到此将确保将使用的是Class1的实例.

编辑:由于ES6允许箭头功能,你也可以做eventbus.subscribe(()=> this.Method1());,因为它被@torazaburo审查

转载注明原文:javascript – ES6从另一个方法调用一个方法 - 代码日志