e.preventDefault()vs preventDefault(e)

时间:2014-08-11 04:59:46

标签: javascript

我只看到以下代码here

function wheel(e) {
  preventDefault(e);
}

事先我习惯这样使用:

function wheel(e) {
  e.preventDefault();
}

那么,这些之间有什么不同?

2 个答案:

答案 0 :(得分:1)

区别在于第一个是语法错误,除非您使用名称preventDefault()定义的函数执行类似

的操作
function preventDefault(e) {
    e.preventDefault();
}

完全没有任何意义。

event.preventDefault是一个存在于事件对象

上的本机函数

答案 1 :(得分:1)

在您提供的link to the post中,还有一项附加功能:

function preventDefault(e) {
    e = e || window.event;
    if (e.preventDefault)
        e.preventDefault();
e.returnValue = false;  
}

此函数是一个用户定义的函数,它是一个阻塞代码,只有在传入的对象上存在时才会尝试触发本机函数。这可能是为了让您可以尝试在各种匿名函数上使用该函数对象无需先检查其类型。它还会清除对象上可能存在的任何returnValue,而本机函数不会这样做。