function doSomething(e) {
var targ;
if (!e) var e = window.event; //<<<< what does it do this check?
if (e.target) targ = e.target;
}
這很簡單,我不能得到它:)爲什麼我們需要檢查這個?一個解釋將是非常好的,謝謝...需要解釋這個簡單的代碼(js)ty!
function doSomething(e) {
var targ;
if (!e) var e = window.event; //<<<< what does it do this check?
if (e.target) targ = e.target;
}
這很簡單,我不能得到它:)爲什麼我們需要檢查這個?一個解釋將是非常好的,謝謝...需要解釋這個簡單的代碼(js)ty!
這增加了與舊版(Internet Explorer?)瀏覽器的兼容性,該瀏覽器不支持將event
對象傳遞給處理程序,而是將它們定義在窗口對象上。
var e = window.event
中不需要var
,因爲它已經聲明(參數)。
它也可以寫成e = e || window.event;
基本上這個如果檢查是否設置e
變量。如果不是,則會爲其指定一個值window.event(發生的窗口事件)
那麼我們真的需要檢查一下嗎?我們可以假設那個'e'會以任何一種方式獲得價值嗎? – YoniGeek 2011-05-30 07:49:52
@YoniGeek其他人(Shurdoof和Alex R.)說,這是爲了瀏覽器的兼容性,'e'將在符合標準的瀏覽器中設置,但不是window.event(僅限IE),所以如果您在未檢查W3C瀏覽器,你會在'e'中得到一個空值 – MeLight 2011-05-30 07:56:25