Javascript 确保`this`指向API实例方法中的类实例

Javascript 确保`this`指向API实例方法中的类实例,javascript,ecmascript-6,this,es6-class,Javascript,Ecmascript 6,This,Es6 Class,考虑以下示例: 类测试{ 构造函数(){ 这个.x=42; } someMethod(){ console.log(this.x); } } testBtn.x=-42; var TestInstance=新测试() testBtn.addEventListener('click',TestInstance.someMethod) 单击我那么,您不希望从测试外部看到\u someMethod,也不希望在构造函数中.bind,因为可能没有添加侦听器(不需要绑定函数)?当你说“更好的方法”时,我不

考虑以下示例:

类测试{
构造函数(){
这个.x=42;
}
someMethod(){
console.log(this.x);
}
}
testBtn.x=-42;
var TestInstance=新测试()
testBtn.addEventListener('click',TestInstance.someMethod)

单击我
那么,您不希望从
测试
外部看到
\u someMethod
,也不希望在构造函数中
.bind
,因为可能没有添加侦听器(不需要绑定函数)?当你说“更好的方法”时,我不确定你到底在寻找什么1)你不需要用不同的名称绑定这个方法,
this.foo=this.foo.bind(this)
就可以了。2) 请参阅,以获得一个实验性的速记。3) 不,除此之外,您并没有遗漏太多。请注意,类字段语法基本上与您现在所做的完全相同,在constructor@deceze但这意味着我必须在构造函数中对每个方法进行显式绑定,我希望能够将引用传递到其他地方。这感觉不太理想,这就是为什么我认为我遗漏了一些重要的东西。不,再说一遍,你没有遗漏任何东西。是的,这很烦人,这就是为什么添加了上面提到的实验性速记语法。同样的问题是,您不希望从
Test
外部看到
\u someMethod
,也不希望在构造函数中
.bind
,因为可能没有添加侦听器(不需要绑定函数)?当你说“更好的方法”时,我不确定你到底在寻找什么1)你不需要用不同的名称绑定这个方法,
this.foo=this.foo.bind(this)
就可以了。2) 请参阅,以获得一个实验性的速记。3) 不,除此之外,您并没有遗漏太多。请注意,类字段语法基本上与您现在所做的完全相同,在constructor@deceze但这意味着我必须在构造函数中对每个方法进行显式绑定,我希望能够将引用传递到其他地方。这感觉不太理想,这就是为什么我认为我遗漏了一些重要的东西。不,再说一遍,你没有遗漏任何东西。是的,这很烦人,这就是为什么添加了上面提到的实验性速记语法。