猿问

作用域,作用域链问题

代码如下:


var scope = "global scope";

function checkscope(){

    var scope = "local scope";

    function f(){

        return scope;

    }

    return f;

}

checkscope()();

问题:1,为什么f()函数返回的是"local scope",

2,自己用谷歌调试,断点至f结束,如下图,此时checkscope执行上下文已经出栈,为什么还是"local scope",为什么不是"global scope"?


红颜莎娜
浏览 269回答 1
1回答

摇曳的蔷薇

函数的作用域只和它定义的地方有关,而与它运行的地方无关。这就是闭包的典型应用。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答