javascript - 通过闭包访问到的全局变量,是由内部函数作用域逐级向上查找到的还是直接访问的?
迷茫
迷茫 2017-04-11 12:48:59
[JavaScript讨论组]

最近在看闭包和模块相关,想到了一个问题,就是
闭包在访问全局变量时,是通过私有函数逐级向上查找作用域找到的全局变量,还是直接就得到了全局变量?
上代码

var _global=1;
var fn=function(){
    var private=0;
    var privateFn=function(){
        console.log(_global);
    }
    return {
        "innerFn":privateFn
    }
}
var canI=fn();
canI.innerFn();//1---->此处的1是直接访问的全局变量还是通过fn函数访问全局变量?
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
巴扎黑

先在当前作用域找,找不到则向外层找,直到window对象

伊谢尔伦

延作用域链逐级查找的。
在fn里再定义一个同名不同值的全局变量,会输出内部的同名变量值。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号