我试图理解为什么下面这段代码在加载文档后立即执行我的功能:
var list = document.getElementsByTagName('li');
function yep() {
window.alert('yep');
}
list[0].onclick = yep();
但这不是:
list[0].onclick = yep;
为什么()
在这种情况下执行函数时会有所不同?
答案 0 :(得分:1)
在对函数的引用之后放置()
意味着您要调用该函数。离开它们意味着您只想将引用作为一个值本身用于该函数。
答案 1 :(得分:1)
yep
是对函数的引用。
yep()
是一个告诉Javascript引擎执行yep
函数的指令。
这就是为什么一个人立即执行而另一个人没有执行的原因。
答案 2 :(得分:1)
括号()
立即执行函数。在第二行,您将list[0].onclick
的值分配给函数名称,但不执行它。