js多种监听事件方式的区别


js多种监听方式的区别

本文只说区别,详细学习参考下面的文档
参考文档1
参考文档2

在js中,监听事件的方式有两种,以 点击事件 举例,分别为:

方式一:
window.addEventListener('click', clickHandler, false);

方式二:
window.onclick = clickHandler;

区别

  1. 方式一可以指定事件触发的阶段(捕获阶段还是冒泡阶段),方式二不行
  2. 方式一可以为每个事件指定多个回调函数;方式二只能为每个事件指定一个回调函数,后指定的回调函数会会覆盖之前的回调函数

区别一很直观的就可以看出来,下面举例证明第二个区别

  1. onresize 多次监听窗口大小变化的事件,当窗口大小发生变化时,只会执行最后指定的回调函数,打印 456



  
  Title





  1. addEventListener 多次监听窗口大小变化的事件,当窗口大小发生变化时,会执行每次指定的回调函数,打印 123 456



  
  Title