window.onscroll 和 window.addEventListener 有什么区别

Nou*_*uny 9 javascript addeventlistener onscroll

我找不到这样做之间的区别:

window.onscroll = () => console.log("scroll")
Run Code Online (Sandbox Code Playgroud)

和这个:

window.addEventListener('scroll', () => console.log("scroll"))
Run Code Online (Sandbox Code Playgroud)

除了浏览器兼容性之外,大多数 IE 版本似乎都不支持这两者!

这只是语法差异吗?使用 删除处理程序似乎很简单removeEventListener,但我假设window.onscroll = null具有类似的效果。

我错过了什么吗?

小智 10

主要区别在于只能有一个 onscroll。您添加的任何其他onscrolls 将覆盖第一个,而您可以添加.addEventListener('scroll', ()=>{})任意多个。

  • 实际上主要的区别是 onXXX 方法在脚本注入上下文中是危险的 (3认同)