了解父函数返回内部函数时javascript的工作原理

时间:2014-06-04 04:28:54

标签: javascript

我在parent_function中有一个inner_function。

我想我明白这是如何运作的:http://jsfiddle.net/93pp5/

 var text = 'Look at me';

function parent_function() {

  function inner_function() {
var scream = '!!!';
alert(text);
}

    inner_function();

};

parent_function();

但是,我试图弄清楚为什么我的下面的javascript不起作用。 parent_function()不能返回inner_function()吗?我的期望是在底部调用parent_function()会显示警报,但它不会:http://jsfiddle.net/93pp5/1/

var text = 'Look at me';

function parent_function() {

 return function inner_function() {
var scream = '!!!';
alert(text);
}

};

parent_function();

1 个答案:

答案 0 :(得分:1)

多数民众赞成因为parent_function返回一个仍需要调用(执行)的函数。

var runAlert = parent_function();
// runAlert now holds the returned function but it still needs to be called to get the alert

runAlert(); // will alert