闭包中定义的var变量作用域?

考虑一下这个闭包

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

var myFunc = makeFunc();
myFunc();

name这个变量是用var定义的

那么按照var的规则,name会被定义在全局的window下

这样的话闭包是不是冲突了呢?

阅读 787
评论 2019-12-16 提问
    2 个回答

    那么按照 var 的规则,name 会被定义在全局的 window

    这个规则是哪里来的

    在函数中是不会的

    评论 赞赏

      你说的不是var定义的变量,应该是this定义的变量在你目前的调用方式会定义到window上。
      function内定义的var只有function内部可以访问

      评论 赞赏
        撰写回答

        登录后参与交流、获取后续更新提醒