我是初学者,我刚试过这样做:
ul.addEventListener("click", function(e) {
console.log("Hi");
});
这很有效。我知道这是一个匿名函数。但是,当我尝试事先给出这个函数的定义并将其传递给它时,它就不会起作用了:
function myFunc(e) {
console.log("Hi from myFunc");
}
ul.addEventListener("click", myFunc(e));
我不明白其中的区别。错误如下:
未捕获的ReferenceError:未定义e 在javascript.js:29
非常感谢您的帮助。
答案 0 :(得分:4)
传递函数的引用,而不是它的执行结果。它将在click
事件被触发时调用您的函数。它与您通过匿名函数相同,在2种情况下,您只传递函数的引用。
function myFunc(e) {
console.log("Hi from myFunc");
}
ul.addEventListener("click", myFunc);