javascript - 返回函数名称的函数与返回函数声明的函数之间有区别吗?
问题描述
只是想知道引擎盖下是否发生了任何不同的事情?起初我认为 x 会保存 sayHello 函数体的副本,但是当在浏览器的调试器中单步执行该过程时,sayHello 函数是在 returnSomeFunction 内部执行的。所以这让我想知道,有没有办法将函数调用分配给返回值是函数定义的变量(在本例中为 x),而不是保存 returnSomeFunction 内部函数的引用?
function returnSomeFunction() {
return function() {
console.log("Hello There!")
}
}
function returnSomeFunction() {
function sayHello() {
console.log("Hello There!")
}
return sayHello;
}
const x = returnSomeFunction();
x();
解决方案
它们之间没有区别。他们俩都做同样的工作。唯一没有影响的区别是第二个有名字而第一个没有。最好使用第二个,以获得更清晰和漂亮的代码。
推荐阅读
- javascript - 完整日历中同一日期的多个事件问题
- javascript - 将 Axios 响应作为 prop 发送到组件
- python-2.7 - 我正在尝试为我的 GUI 应用程序设置固定框架。窗口不应改变其大小
- spring-mvc - 在两个不同的 @RestController 类中有两个完全相同的 @ExceptionHandler 是不好的做法吗?
- x86-16 - 实模式下的有效寻址 - 访问数组
- kubernetes - 在我的情况下,为什么 pod 状态会以 crashloopbackoff 的形式出现?
- hadoop - 纱线公平调度程序没有均匀分配资源
- redis - 有没有办法在将记录添加到redis中的键时发布消息?
- django - 当通过渲染传递变量时,我尝试尝试许多解决方案来解决 django 中的 HTTP 状态代码必须是整数
- json - React:为 setState 传递带有事件的 Prop