javascript:functionName() 和 functionName 有什么区别?

标签 javascript

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

顺便说一句,我注意到这是有效的: 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:functionName() 和 functionName 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6037245/

相关文章:

javascript - SVG/Raphael,如何在 JavaScript 中实现 DOT 算法? (图组织)

javascript - 获取大型列表中元素的值

javascript - 根据所选选项更改同一选择中的选项

javascript - 从 Node JS 中的生成器获取返回值

JavaScript:将字符串 push() 到数组中返回 **null**

javascript - php ajax jquery 未返回响应文本

javascript - 教程代码 -> 使用 JSX 时, 'React' 必须在范围内

javascript - 通过 ajax 请求观察 div 变化

javascript - 在 ajax 成功响应上调用 data-id

javascript - 从 Jquery 中的 Div 类名获取 Id