<!DOCTYPE html> <html> <head> </head> <body> <script> function good(){ alert(1);if(console){console.log(this);} } if(document.addEventListener){ document.addEventListener("click",good,false); document.addEventListener("click",good,false); document.addEventListener("click",good,false); }else{ document.attachEvent("onclick",good); document.attachEvent("onclick",good); document.attachEvent("onclick",good); } </script> </body> </html>
在不同的浏览器中可以发现,IE下会显示3次alert
但是其他标准浏览器中只会显示一次alert
说明的问题是
1.attachEvent可以给同一个元素重复绑定相同的函数
2.this指针问题,attachEvent的this指向window对象,而addEventListener就是对应的DOM元素,也就是Document对象