【发布时间】:2019-11-02 20:56:12
【问题描述】:
在 JavaScript 中的事件侦听器上使用 bind() 时,我无法再获取带有“this”的元素。
这是我的代码:
function callback(){
console.log(this.someVar);
// Works fine
console.log(this);
// No longer refers to the element, outputs "Object"
}
callback = callback.bind({someVar: 1234});
element.addEventListener('click', callback);
关于如何解决这个问题的任何想法?
【问题讨论】:
-
这就是
bind所做的——它永久设置this上下文。如果你不想要这种行为,那么也许你不应该使用bind。 -
你得到了什么输出?
-
@VLAZ 我可以用什么替代?
-
@KaleshKaladharan "对象"
-
@VLAZ 我想在事件中将一个变量传递给函数,但这个变量是不断变化的。当事件触发时,我希望函数从创建 EventListener 时输出变量的值。
标签: javascript events dom-events addeventlistener