函数内部函数vs函数返回JavaScript中的函数

时间:2015-03-05 15:01:08

标签: javascript function return

我正在学习JavaScript,我无法理解这一点。

function Out1()
{
    function In1()
        {
            console.log("text inside function In1");
        }
    return In1();
}


function Out2()
{
    return function In2()
        {
            console.log("text inside function In2");
        };
}

Out1();    // text inside function In1
Out2();    // 

输出2();控制台中没有任何输出我做错了什么?

1 个答案:

答案 0 :(得分:1)

  

输出2();控制台中没有任何输出我做错了什么?

Out2返回对其创建的函数的引用。它没有调用该功能。您可以在返回的引用上使用()来调用它:

//  vv-------- These call `Out2`   
Out2()();
//    ^^------ These call the function referenced returned by `Out2`

E.g:

var f = Out2(); // `f` is now a reference to the `In2` function
f();            // This calls `In2`