返回函数内的函数

时间:2014-07-27 04:30:35

标签: javascript

以下是我正在尝试的代码示例:

var hello = function hi(){
    function bye(){
        console.log(hi);
        return hi;
    }
    bye();
};

hello();

以下是repl.it链接

我正在尝试从函数hi返回函数bye。正如您所看到的,当console.log(hi)值出现时,我的返回语句不会返回hi函数。为什么return语句没有返回hi的引用?

2 个答案:

答案 0 :(得分:3)

你忘了return再见。

return bye();

答案 1 :(得分:1)

不要通过在另一个内部定义一个函数来使思考复杂化

首先定义您的hi函数,例如

function hi (message) 
{ 
     console.log(message) 
}

它需要一个参数并在控制台上显示它

现在让我们定义我们的bye函数

function bye ()
{
     hi(" Called from the function bye ");
}

否,当您致电bye时,您同时致电hi

bye(); // it will show on the console the message " Called from ... " 

如果你想从函数中返回一个函数,你很容易定义你的hi函数

function hi (message) 
{ 
     console.log(message) 
}

bye函数返回hi函数,如下所示

function bye() 
{
     return hi;
}

现在你需要做的就是调用bye函数并让参数在控制台中显示返回的内容,就像这样

bye()(" This is a sample message ");