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

js多种监听方式的区别

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

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

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

方式二:
window.onclick = clickHandler;

区别

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

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

  1. onresize 多次监听窗口大小变化的事件,当窗口大小发生变化时,只会执行最后指定的回调函数,打印 456
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script>
   window.onresize = () => {
     console.log(123)
   }
    window.onresize = () => {
    console.log(456)
  }
</script>
</body>
</html>
  1. addEventListener 多次监听窗口大小变化的事件,当窗口大小发生变化时,会执行每次指定的回调函数,打印 123 456
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script>
  window.addEventListener("resize", () => {
    console.log(123)
  })
  window.addEventListener("resize", () => {
    console.log(456)
  })
</script>
</body>
</html>
原文地址:https://www.cnblogs.com/yloved/p/13518427.html