为什么这个代码在文档加载后很快就会执行我的函数?

时间:2016-01-02 21:54:33

标签: javascript

我试图理解为什么下面这段代码在加载文档后立即执行我的功能:

var list = document.getElementsByTagName('li');
function yep() {
    window.alert('yep');
}
list[0].onclick = yep();

但这不是:

list[0].onclick = yep;

为什么()在这种情况下执行函数时会有所不同?

3 个答案:

答案 0 :(得分:1)

在对函数的引用之后放置()意味着您要调用该函数。离开它们意味着您只想将引用作为一个值本身用于该函数。

答案 1 :(得分:1)

yep是对函数的引用。

yep()是一个告诉Javascript引擎执行yep函数的指令。

这就是为什么一个人立即执行而另一个人没有执行的原因。

答案 2 :(得分:1)

括号()立即执行函数。在第二行,您将list[0].onclick的值分配给函数名称,但不执行它。