函数表达式与直接调用

函数表达式与直接调用

问题描述:

为什么不同的结果直接调用函数而不是函数表达式然后调用变量?函数表达式与直接调用

function makeFunc() { 
    var name = "Mozilla"; 
    function displayName() { 
    alert(name); 
    } 
    return displayName; 
} 

console.log(makeFunc()); 
makeFunc(); //no alert 

var myFunc = makeFunc(); 
console.log(myFunc); 
myFunc(); //Yes alert 
+0

因为第一个永远不会调用'displayName',而第二个呢(间接)。 –

+2

这是关闭。如果你不存储返回的值,这是一个函数,不要调用返回的函数,那么代码就没有意义了。 – undefined

+0

http://*.com/questions/12380382/javascript-assign-variable-to-alert – AshBringer

你要调用函数的返回

function makeFunc() { 
 
    var name = "Mozilla"; 
 
    function displayName() { 
 
     alert(name); 
 
    } 
 
    return displayName; 
 
} 
 
makeFunc()(); // alert!