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"
关于作用域和上下问的理解,请自行搜索,有很多很好的答案,我这里就不重复回答了
添加回答
举报
0/150
提交
取消