最近在看闭包和模块相关,想到了一个问题,就是
闭包在访问全局变量时,是通过私有函数逐级向上查找作用域找到的全局变量,还是直接就得到了全局变量?
上代码
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函数访问全局变量?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
先在当前作用域找,找不到则向外层找,直到window对象
延作用域链逐级查找的。
在fn里再定义一个同名不同值的全局变量,会输出内部的同名变量值。