yar*_*rat 0 javascript this event-listener addeventlistener
我已经尝试通过阅读它来了解this关键字所指的内容.好吧,那没有帮助.所以请帮我这个!
手动函数调用与事件监听器绑定的区别在哪里?
var app = {
foo: true,
bar: function() {
console.log("this",this.foo);
console.log("app",app.foo);
}
}
app.bar();
/* this true
app true */
document.addEventListener("click", app.bar);
/* this undefined
app true */
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
在你的document.addEventListener this意志里面document,因为你正在调用一个document对象的函数.当您app.bar()直接呼叫时,出于同样的原因this引用app对象.
如果要引用,app则必须手动重新定义函数的上下文,使用bind():
document.addEventListener("click", app.bar.bind(app));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2181 次 |
| 最近记录: |