函数表达式与直接调用
问题描述:
为什么不同的结果直接调用函数而不是函数表达式然后调用变量?函数表达式与直接调用
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
答
你要调用函数的返回
function makeFunc() {
var name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
makeFunc()(); // alert!
因为第一个永远不会调用'displayName',而第二个呢(间接)。 –
这是关闭。如果你不存储返回的值,这是一个函数,不要调用返回的函数,那么代码就没有意义了。 – undefined
http://*.com/questions/12380382/javascript-assign-variable-to-alert – AshBringer