JS如何在外部调用函数内部的函数

在外部调用函数内部的函数是行不通的。因为每执行环境通过作用域链只能一级一级的往上查询函数,不能往下级搜索函数。
举个栗子:

var a=10;
    function numberone(){
        var b=20;
        function numbertwo(){
            var c=30;
            console.log(c);//由于函数不能在外部环境被调用,所以没有输出值
        }
        console.log(b);//20
    }
    numberone();
    numbertwo();//不能再外部环境搜索到函数

会出现以下错误:
在这里插入图片描述
那应该怎么做才能在外部环境调用函数内部的函数呢?
先在函数外部定义一个变量,用来接收函数内部的函数的函数名。如下:

//定义一个变量名
 var last;
    function numberone(){
        var b=20;
        function numbertwo(){
            var c=30;
            console.log(c);
        }
        last=numbertwo;
        console.log(b);
    }
    //先调用外部函数
    numberone();
    //再调用内部函数
    last();

你可能感兴趣的:(JS如何在外部调用函数内部的函数)