不管是对于刚刚学习JS的初学者来说还是有几年前端经验的人,对于类似
event || window.event 或者 e || window.event
都很好奇这什么作用。其实本人之前也见过别人封装插件也写过类似的方法,也不明白什么意思。直接举例子说明
document.getElementById('drag').onclick=function(event){ document.title=event.x+'--'+event.y; };
上面的例子是JS原生绑定属性的写法,把event当做参数传入进来写对于用惯jQuery的开发者来说这并没有什么错都很正常,但是在IE6/7/8中这样写是会报错的,因为在低版本的浏览器中event是存在全局的环境中。
应该修改成: 做兼容性处理
document.getElementById('drag').onclick=function(event){ var e =event || window.event; document.title=e.x+'--'+e.y; };
但是我们知道在IE中有attachEvent监听绑定事件跟现代浏览器addEventListener功能一样,如果使用此方法绑定事件就不存在event当参数传入的问题了。