1. 程式人生 > >JS使用標籤事件屬性時, 想取得事件物件E時的寫法

JS使用標籤事件屬性時, 想取得事件物件E時的寫法

如果沒有傳入event作為引數,在函式內部如何獲取event呢?

js對於函式的定義是非常鬆,即使你在函式定義時未寫任何引數,或者你定義的引數有多個,但是你呼叫時,一個引數也不填,也不會出錯的。
因為js函式內預設有個變數,儲存你的入參叫:arguments,
他是一個數組,下標從0開始,
所以獲取event可以寫成

function eventTest(){
    var event = window.event||arguments[0];
    //target 就是這個物件
    target = event.srcElement||event.target,
    //這個物件的值
    targetValue = target.value;
}

當然,有的時候需要給函式傳入幾個引數,這時如果要用想用到event的話可以這麼寫

function eventTest(a,b){
    var event = window.event || arguments.callee.caller.arguments[0]
    //target 就是這個物件
    target = event.srcElement||event.target,
    //這個物件的值
    targetValue = target.value;
}

如果傳入了引數卻如第一種寫法的話,則arguments中將會傳入傳入的引數,這時獲取的arguments[0]就會是第一個傳入的引數了。

鑑於此,故還是都用第二中方法獲取更為穩妥。

--------------------- 本文來自 阿阿阿叮 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/sinat_27801935/article/details/75042940?utm_source=copy