一尘不染

在JavaScript中,如果我用括号调用函数会有所不同吗?

javascript

在调用带有空括号或根本没有任何括号的函数时,我注意到了一个区别。但是,我没有将任何参数传递给该函数,所以我想知道两者之间的区别是什么:

window.onload = initAll();

window.onload = initAll;

请解释其背后的原理。


阅读 271

收藏
2020-04-25

共1个答案

一尘不染

window.onload = initAll();

执行 initAll() 直线距离 和分配 函数的返回值window.onload。这通常 不是
您想要的。initAll()为此必须返回一个函数。

window.onload = initAll;

这将 实际的函数 分配给window.onload这是可能的,因为正如@Felix所说,在JavaScript中,函数是第一类对象无需执行。initAll将由load事件执行。

2020-04-25