addEventListener 有三个参数:

事件名称;
事件处理函数;
捕获还是冒泡。

事件处理函数不一定是函数,也可以是个JavaScript具有handleEvent方法的对象,看下例子:

var o = {
  handleEvent: event => console.log(event)
}
document.body.addEventListener("keydown", o, false);

第三个参数不一定是 bool 值,也可以是个对象,它提供了更多选项。

once:只执行一次。
passive:承诺此事件监听不会调用 preventDefault,这有助于性能。
useCapture:是否捕获(否则冒泡)。

实际使用,在现代浏览器中,还可以不传第三个参数,建议默认不传第三个参数,因为冒泡是符合正常的人类心智模型的,大部分业务开发者不需要关心捕获过程。除非你是组件或者库的使用者,那就总是需要关心冒泡和捕获了。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐