JavaScript:与addEventListener绑定

问题描述 投票:0回答:2

当在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);

关于如何解决此问题的任何想法?谢谢!

javascript events javascript-events bind addeventlistener
2个回答
0
投票

您只能调用bind()一次。调用bind()之后,this引用将绑定到该参数。因此无法将偶数分配给this


0
投票

方法bind用于确保函数的this引用参数。

所以,当您调用类似的函数时

callback.bind({someVar:1234})

this在函数回调中将为{someVar:1234}

要访问回调函数中的someVar,必须使用this.someVar。希望对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.