JavaScript 函数调用中的括号
在 JavaScript 中,当不涉及参数时,调用不带括号的函数可能看起来无害。然而,两种语法之间存在细微的差异:
window.onload = initAll();
window.onload = initAll;
使用括号时:
在函数调用中使用括号,如第一个示例,立即执行函数。函数执行的结果(如果有)将被分配给接收函数调用的变量或属性,在本例中为 window.onload。当您打算将函数本身分配给侦听器时,此执行通常是不可取的。
省略括号时:
省略括号,如在第二个示例中,将函数引用直接分配给变量或属性。该函数仅在侦听器或事件触发时才会执行,以确保预期的行为。
附加说明:
您可能遇到的另一个变体是:
window.onload = () => initAll();
这使用了围绕 initAll 的箭头函数。它创建一个在调用时立即调用 initAll 的函数。但是,由于外部函数被分配给 window.onload,因此它确保 initAll 仅在 load 事件上执行。
以上是JavaScript 中的 `window.onload = initAll();` 和 `window.onload = initAll;` 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!