我正在尝试了解闭包,并从 MDN 中发现了这段代码。我在 jsbin 中尝试过,它可以工作,但我不明白为什么需要将 makeFunc 分配给 var myFunc,然后调用 myFunc 而不是仅仅调用 makeFunc,后者不起作用。
function makeFunc() {
var name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
var myFunc = makeFunc();
myFunc();
最佳答案
I can't figure out why it's necessary to assign makeFunc to var myFunc
事实并非如此。看代码:
var myFunc = makeFunc();
^^
makeFunc
正在调用。它的返回值被分配给myFunc
。
该返回值是 displayName
(它可以访问闭合的 name
变量)。
myFunc();
然后调用该函数。
关于javascript - 为什么在 JavaScript 中将声明的函数分配给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44681803/