ES6 从另一个方法调用一个方法
ES6 call one method from another
我是 ES6 语法的新手,我的原始代码有更多的实现,但我简化了。我收到一个错误,说无法读取未定义的属性"方法2"。我在这里做错了什么?我是否必须执行任何绑定调用。
class Class1 {
constructor() {
eventbus.subscribe(this.Method1);
}
Method1() {
this.Method2();
}
Method2(){
}
}
你需要做eventbus.subscribe(this.Method1.bind(this));
由于您正在关联该方法以在其他地方运行,因此您将确定它将在哪个作用域下运行。强制绑定到此将确保这是将使用的Class1
实例。
编辑:由于ES6允许箭头功能,你也可以做eventbus.subscribe(() => this.Method1());
,因为它是由@torazaburo
无法读取未定义的属性"方法2"
很可能您没有创建同一类的任何对象,或者可能缺少创建新对象的 new
关键字。
var cls = Class1(); // will throw error.
cls.Method1();
我的意思是,如果你这样做:
var cls = new Class1();
cls.Method1(); // will get executed.
ES6小提琴演示。
相关文章:
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 将一个方法转换为promise:Nodejs
- 如何在所有ng点击事件AngularJS上启动一个方法
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 拆散一个大班的巧妙方法
- 如何创建一个方法来验证数组的范围
- 如何将一个方法延迟到另一个方法首先完成,javascript
- Angular2将组件方法导入到另一个组件中
- 你能把一个匿名方法(函数)动态地变成一个命名方法吗
- 在Javascript中对类的每个实例调用一个方法
- 如何重写一个方法,并且仍然能够在重写的方法中使用基方法
- 将其中一个异步方法重写为使用promise的方法
- 添加一个setTimeout方法会使jQuery悬停方法忽略setTimeout方法中的函数
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- JQuery是否有一个“;移动“;作用或者有没有一种更紧凑的方法来做到这一点
- 我应该返回一个类似console.log()的方法调用吗
- AngularJS从对象中获取另一个值的方法
- JavaScript 方法一个有效,另一个无效
- 正确的删除方法一个属性
- QUnit:每个方法一个测试,每个方法有多个断言或多个测试