我注意到您可以引用带或不带括号的函数。为什么?有什么区别?

顺便说一句,我注意到这有效:
window.onload = functionName;

而这不是:
window.onload = functionName();

谁能解释为什么代码的顶行起作用而底部的行不起作用?

最佳答案

()版本未引用该功能。它调用该函数并引用其返回值。

给定此功能:

function functionName() {
    return "I'm a function";
}


这引用了该函数:

 // window.onload will reference the function, and invoked it when the page loads
window.onload = functionName;


...但是这引用了返回的字符串,对window.onload来说不是很有用:

 // the function is invoked immediately, so now window.onload references the
 //    string "I'm a function" that was returned
window.onload = functionName();

关于javascript - javascript:functionName()和functionName有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6037245/

10-11 08:12