为什么不能将非嵌套函数分配给变量counter?为什么第二个函数会产生错误?

第一个:

function makeCounter() {
  return function() {
    return "hello";
  };
};
let counter = makeCounter();
console.log( counter() );


第二:

function makeCounter(){
  return "hello";
};
let counter = makeCounter();
console.log( counter() );

最佳答案

在第二种情况下,您不是分配函数,而是分配它的return结果(它是字符串hello),请将您的代码更改为可以使用:

function makeCounter(){
  return "hello";
};
let counter = makeCounter; // Assign function reference
console.log( counter() );

10-05 17:48