Javascript 未捕获类型错误:数字不是函数

Javascript 未捕获类型错误:数字不是函数,javascript,typeerror,nested-function,return,Javascript,Typeerror,Nested Function,Return,我只是想了解这段代码发生了什么,我深入研究了嵌套函数和更高阶的主题,以及return语句。但我仍然想结束这种怀疑(不确定连续两个返回语句),这导致我来到这里,需要帮助我理解,以及所有适用的问题 function higher_order(){ return function addNum() { return 1+1; return function subNum() { return 1-1; }; }; }; alert(high

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

function higher_order(){
  return function addNum()
  {  
    return 1+1;
    return function subNum()
    {
      return 1-1;
    };
  };
}; 
alert(higher_order()()());

问题是函数在第一个return语句之后停止运行;您的
高阶
返回函数
addNum
,该函数返回数字2;这是不可调用的,异常发生在第三个括号中
()

  • higher\u order()
    返回函数
    addNum()
  • addNum()
    返回数字2
  • 2
    higher_order()()
    )不能作为函数调用,因此会出现异常

您可以尝试
alert(higher_order()())
查看第三个调用使用的值。

问题是函数在第一个return语句之后停止运行;您的
高阶
返回函数
addNum
,该函数返回数字2;这是不可调用的,异常发生在第三个括号中
()

  • higher\u order()
    返回函数
    addNum()
  • addNum()
    返回数字2
  • 2
    higher_order()()
    )不能作为函数调用,因此会出现异常
您可以尝试
alert(higher_order()())
查看第三次调用使用的值。

//请尝试以下方法:

function higher_order(){
    return function addNum(){
        return function subNum(){
            return 1-1;
        };
    };
};
高阶函数()//返回函数addNum

higher_order()()//返回函数subNum

higher_order()()()//返回从subNum(0)返回的值。

//请尝试以下方法:

function higher_order(){
    return function addNum(){
        return function subNum(){
            return 1-1;
        };
    };
};
高阶函数()//返回函数addNum

higher_order()()//返回函数subNum


higher_order()()()//返回从subNum(0)返回的值

每当你看到两个这样的返回时,仔细想想,如果函数返回1+1,它怎么也应该返回一个函数?每当你看到两个这样的返回时,仔细想想,如果函数返回1+1,它应该如何返回一个函数?