addEventListener() 的替代快捷方式

Ale*_*lex 3 javascript optimization javascript-events

可能的重复:
使用 addEventListener 有什么区别?

我注意到可以直接在对象上分配事件,而不必使用 addEventListener:

document.onload = function(e){
  // do stuff..
};
Run Code Online (Sandbox Code Playgroud)

代替:

document.addEventListener('load', function(e){
  // do stuff..
});
Run Code Online (Sandbox Code Playgroud)

那么有什么理由我不应该使用第一种方法吗?为什么其他人不使用它?

这似乎也适用于旧的 IE(在其中您需要 attachEvent)。

Pau*_* S. 6

考虑如果您尝试以下操作会发生什么(我将事件附加到,window因为这是您应该侦听此事件的地方)

window.onload = function (e) {console.log('A');};
window.onload = function (e) {console.log('B');};
Run Code Online (Sandbox Code Playgroud)

对比

window.addEventListener('load', function (e) {console.log('C');}, false);
window.addEventListener('load', function (e) {console.log('D');}, false);
Run Code Online (Sandbox Code Playgroud)

从第一个代码块中,您只会看到"B",但从第二个代码块中,您将同时看到"C""D"小提琴(请打开控制台查看)。