08 JavaScript语言进阶-上级作用域的查找

上级作用域的查找

只需查看当前函数在哪个作用域下定义的,那此作用域为当前函数的上级作用域,与当前函数在哪里执行无关。

示例:

var num = 15;//预解释,全局作用域中声明 num
function fn(){
  var num = 150;//fn()预解释,函数私有作用域中声明 num
  return function(){//return 之后不进行预解释
    console.log(num);
/*调用变量num的值,当前匿名函数无num变量,查找当前函数作用域的上级作用域的num变量,
 *匿名函数是在fn()的私有作用域下定义的,故fn()私有作用域为匿名函数的上级作用域,
 *因此fn()私有作用域的num变量是匿名函数引用的变量。
 */

  };

}

var f = fn();//预解释,声明变量f,将fn()引用地址赋值给f
f();//在全局作用域下执行f(),输出150

~function(){
  var num = 1500;
  f();//在自执行函数下执行函数f(),输出150
}();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值