文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
addEventListener与handleEvent关系
addEventListener
是用来注册事件的,通常第二个参数我们传入的是一个回调函数,但是今天我在看Headroom.js
的源码的时候,发现居然是可以传入object
,只需要这个object
具有handleEvent
属性即可。
区别
既然都是调用一个方法,那么他们直接的区别到底是什么呢?很直观的感受应该就是this
指向了,下面我们用代码来进行一下说明:
// using funcion handle
function clickHandler() {
console.log('clickHandler:', this);
}
window.addEventListener('click', clickHandler, false);
// using obj handle
var handleObj = {
handleEvent: function() {
console.log("handleEvent obj:", this);
}
}
window.addEventListener('click', handleObj, false);
我们在控制台分别测试一下,就会发现函数传递的时候,this指向的注册的对象。而对象处理的方式,this指向的是对象本身。这样当我们需要在处理函数中再操作对象的时候,就方便多了。
参考资料
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论