我正在教自己使用JavaScript編寫代碼,其中一個讓我興奮的事情是能夠創建自定義(較短)版本的addEventListener。爲什麼我的addEvent函數需要自我調用?
我有以下代碼:
var onEvent = function() {
return function(obj, event, fn) {
obj.addEventListener(event, fn, false);
};
}();
onEvent(input,"keypress", pressedEnter);
(我自己個人使用,我更喜歡用「當」,而不是「的onEvent」
研究後,我想我明白,加入() ??在函數結束運行時,它可是爲什麼這是必要的不會的功能,只要它添加到被點擊的對象運行
同樣,我創建了一個更短的getElementById:
function grab(id) {
return document.getElementById(id);
}
爲什麼在使用前不需要自行運行?我誤解了結尾括號的目的嗎?
謝謝。
第一位代碼中立即調用的函數沒有意義。 – Pointy
如果我刪除括號它不會工作。 – codemon
刪除整個周圍的匿名函數。讓它看起來像你的'grab()'函數。它是如何得到原來的樣子的? – Pointy