var ev = ev || event

event是事件对象(也是window的属性),但不是标准的,只有IE支持。 
在W3C标准支持的浏览器下事件对象是引发事件函数的第一个参数,参数名随意。 
所以,我们一般使用事件对象:

  function (ev){
      var ev = ev || event;
  }

而 || 的两边是不能反过来写的,不了解ev || event和event || ev 只能说明你对||操作符不熟悉。 
||返回第一个Boolean类型为true的值, 
在IE中执行var oEvent = ev || event;时,ev为undefined,即为false,而event为true。所以返回的是它所支持的event。 
在其他浏览器中,第一个ev为true,直接返回,不用理会后面的event。

而反过来写,var oEvent = event || ev; 
IE下不会报错,直接返回第一个为true的event 
但在其他浏览器中,event没有被定义,直接报错。

猜你喜欢

转载自www.cnblogs.com/phoebeyue/p/9147127.html