Javascript 将引用传递给事件侦听器;“自我”;;
我只是想知道是否可以将对“this”的引用保存为变量,然后在eventListener中使用它。如果没有,请告知在javascript中传递对不同上下文的引用的最佳实践 例如:Javascript 将引用传递给事件侦听器;“自我”;;,javascript,Javascript,我只是想知道是否可以将对“this”的引用保存为变量,然后在eventListener中使用它。如果没有,请告知在javascript中传递对不同上下文的引用的最佳实践 例如: someListener(){ let self = this; //referencing this class someObject.addEventListener("click"), function(){ //some magic applied he
someListener(){
let self = this; //referencing this class
someObject.addEventListener("click"), function(){
//some magic applied here
self.someArray.push("something");
}
}
在处理事件时,我想不出其他方法来引用不同的上下文(事件侦听器所属的类的上下文)
谢谢这很好,而且非常地道的ES5(使用这个名字也很常见) ES6告诉我们哪些人使用了词法
而不是自己的
someListener(){
someObject.addEventListener("click"), () => {
//some magic applied here
this.someArray.push("something");
}
}
在引入之前,这是javascript开发人员常用的方法,但现在您可以使用
使用arrow函数可以解决这个问题,因为arrow函数没有自己的绑定。它们从封闭范围中获取其值,在你的例子中,这是someListener
函数的局部范围。如果你给事件监听器传递了一个箭头函数,那么就不需要self
。但是这种方法也是可以接受的,并且在ES6之前的代码中被广泛使用……太棒了,谢谢你,我会有一篇关于这方面的文章。我希望我能在昨天的堆栈中找到这一点谢谢你,先生
someListener(){
someObject.addEventListener("click"), () => {
this.someArray.push("something");
}
}