关于闭包,作用域、作用域链和上下文

var scope="global";

var a={

    scope:"local",

    checkscope:function (){

    var scope="local-1";

      

     function f(){

         // 1、return this.scope; //结果是"global" ,为什么不是local

         return scope;     //结果是"local-1"

     }

     return f;

 

    }

}



为什么1 结果是"global" ,为什么不是local?作用域、作用域链和上下文怎么理解,感觉这些有点懵,求解答


一只甜甜圈
浏览 563回答 1
1回答

蝴蝶刀刀

function f(){    return this.scope; }//当 f 被 return 出去时, this.scope 还没有被计算,//当 f 执行时 this 根据执行环境确定,值为 window, f 的返回值为 "global" function f(){     return scope;   }//当 f 被 return 出去时, scope 还没有被计算//当 f 执行时 scope 获取 f 定义时的环境中(形成了一个闭包)的 scope 变量,值为 "local"关于作用域和上下问的理解,请自行搜索,有很多很好的答案,我这里就不重复回答了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript