未捕获的TypeError:数字不是函数

use*_*761 1 javascript return typeerror nested-function

我只是想了解这段代码发生了什么,我深入研究了嵌套函数和更高阶的主题,以及return语句.但我仍然希望结束这种怀疑(不确定连续两个返回声明)这导致我在这里,需要帮助以便我的理解,以及所有适用的.

function higher_order(){
  return function addNum()
  {  
    return 1+1;
    return function subNum()
    {
      return 1-1;
    };
  };
}; 
alert(higher_order()()());
Run Code Online (Sandbox Code Playgroud)

Ant*_*ala 5

问题是函数在第一个return语句后停止运行; 你higher_order返回的函数addNum,返回数字2; 这是不可调用的,并且异常发生在第3个括号中()

  • higher_order() 返回功能 addNum()
  • addNum() 返回2号
  • 2(higher_order()())不能作为函数调用,因此会出现异常.

您可能会尝试alert(higher_order()())查看第三次调用所使用的值.