当在JavaScript中的事件监听器上使用bind()时,我无法再使用“ this”来获取元素。
这是我的代码:
function callback(){
console.log(someVar);
// Works fine
console.log(this);
// No longer refers to the element, outputs "Object"
}
callback = callback.bind({someVar: 1234});
element.addEventListener('click', listener);
关于如何解决此问题的任何想法?谢谢!
您只能调用bind()一次。调用bind()之后,this
引用将绑定到该参数。因此无法将偶数分配给this
方法bind
用于确保函数的this
引用参数。
所以,当您调用类似的函数时
callback.bind({someVar:1234})
this
在函数回调中将为{someVar:1234}
要访问回调函数中的someVar
,必须使用this.someVar
。希望对您有所帮助。