javascript - 为什么在 JavaScript 中将声明的函数分配给变量?

标签 javascript function variables closures

我正在尝试了解闭包,并从 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/

相关文章:

javascript - 将 DOMTimeStamp 转换为本地化 HH :MM:SS MM-DD-YY via Javascript

python - 如何使用 Python 轻松将变量扩展为字符串?

node.js - 如何使用 Koa 修复 Azure Functions 中的 "Choose either to return a promise or call ' did'"

php - 尝试显示随机选择的 id 中的 mySQL 数据

css - LESS 变量作为参数混合

php - 在服务器端保存大量数组的最佳方法

javascript - 通过上下文查找 Array.sort 的方向

javascript回调函数同步

javascript - 从函数内部的对象传递值

c++ 2d数组传递给函数