javascript事件处理函数的参数的问题

2022-03-31 社会 66阅读

你所谓的第二种,也就是兼容写法实际上是下面这样的:

function(event){
event = event? event: window.event;
//或者像下面的是等价的
event = event || window.event;
}

老版本IE,事件对象放到了全局命名空间下。也就是window属性上。而标准浏览器的事件对象是注入的。也就是方法的参数event。参数是注入的,所以参数名你可以随便起。上面叫做event。你也可以叫做ev,也可以叫做ev123.只要符合变量名的规范就可以了。


因此,你要明白,老版本IE的事件模式跟标准事件之间的区别是什么。跟变量名本身是没有关系的。而是跟事件对象的来源有关。


再重申一下。旧版IE浏览器的事件对象注册到了window对象中。标准事件模型中,事件对象是注入到了事件方法的参数中。

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com