简化事件监听函数写法

相比jQuery或者zepto, 原生js的写法有时太过繁琐。下面是一个简化监听函数的写法的小技巧。

从简单的开始,比如console.log, 可以写成const log = console.log

用这个思路简化事件监听函数:

1
const listen = EventTarget.addEventListener

这里EventTarget需要修改成目标元素,想到使用call/apply

1
2
3
listen.call(targetElement, "click", event => {
// ...
})

call/apply可以用来改变执行时this的指向。

这样还是要每次都写call, 这种简化还是不够理想, 是时候祭出bind – 它可以绑定this:

1
2
3
4
5
let listen = Function.prototype.call.bind(document.addEventListener)
listen(targetElement, "click", event => {
// ...
})

简化至此完成,效果还可以😊。

Proudly powered by Hexo and Theme by Hacker
© 2017 XGZ