首页 >web前端 >js教程 >为什么 `setTimeout` 中的函数调用不总是用括号括起来?

为什么 `setTimeout` 中的函数调用不总是用括号括起来?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-23 18:27:17718浏览

Why Don't Parentheses Always Surround Function Calls in `setTimeout`?

何时在函数调用中使用括号

检查以下代码时:

var myFunction = function() {
  setTimeout(myFunction, 1000);
}
myFunction();

有人可能想知道为什么setTimeout 内的函数调用不需要括号,而独立函数调用

理解区别

  • myFunction:此名称指的是函数定义。
  • myFunction():添加括号会调用function.

超时函数参数

setTimeout 将函数引用作为其参数之一。在给定的代码中,myFunction 被引用为回调函数。

超时参数中的括号

在 setTimeout(myFunction(), 1000) 中包含括号可能会产生意想不到的后果如果 myFunction 返回一个函数(例如,使用箭头函数)。在这种情况下,setTimeout 将接收 myFunction 的返回值而不是函数引用本身。这可能会导致重复的函数执行或意外行为。

因此,当使用 setTimeout 或需要函数引用的类似方法时,通常建议省略函数参数的括号

以上是为什么 `setTimeout` 中的函数调用不总是用括号括起来?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn