JS使用標籤事件屬性時, 想取得事件物件E時的寫法
阿新 • • 發佈:2018-12-01
如果沒有傳入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