日期:2014-05-16  浏览次数:20649 次

JS如何判断我传递的参数是不是event事件对象?
在函数中经常会遇到function demo(ev){}这样的ev参数,这个参数在FF里是可以随便起名的,但是它代表了event事件对象,就是在函数内部可以用ev.某个属性这样来调用这个event事件对象

JS是怎么知道这个ev(或者abc也可以)到底是我传递的某个参数还是event事件对象呢?

这个地方一直没明白,也不知道该怎么百度

再一个就是,这种写法是不是只支持像onload,onclick这样的事件函数的传参?而不支持一般的用户自定义的函数传参?

------解决方案--------------------
事件处理函数才需要传入 event (非IE浏览器)
------解决方案--------------------
浏览器的事件对象是不能被修改的,所以jQuery的做法就是自己复制一个事件对象,然后加入他自己的东西,基于这个原理,LZ只要给event.test赋值,然后读这个值,如果读不到,那么这个就是浏览器给的事件对象。
------解决方案--------------------
function(evt) {
    if(evt.preventDefault) alert('this is event');
}