为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只甜甜圈 2018-09-06 11:10:43
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?作用域、作用域链和上下文怎么理解,感觉这些有点懵,求解答
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

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"

关于作用域和上下问的理解,请自行搜索,有很多很好的答案,我这里就不重复回答了


查看完整回答
反对 回复 2018-10-13
  • 1 回答
  • 0 关注
  • 562 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信