首页 > 解决方案 > 返回函数名称的函数与返回函数声明的函数之间有区别吗?

问题描述

只是想知道引擎盖下是否发生了任何不同的事情?起初我认为 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();

标签: javascriptfunctionreturn

解决方案


它们之间没有区别。他们俩都做同样的工作。唯一没有影响的区别是第二个有名字而第一个没有。最好使用第二个,以获得更清晰和漂亮的代码。


推荐阅读