前端知识——浅谈函数作用域指向的基础知识(一)

函数作用域在JavaScript体系里是非常重要的一个环节,很多新人朋友们对于函数作用域的指向也是有点懵逼,今天我就稍微举个案例来和新人朋友们分享下,关于我对函数作用域指向的一些小小的心得和理解。
通常来讲函数作用域处于什么位置,不是看该函数在什么地方调用,而是我们要看该函数在什么地方定义的,例如:

//全局作用域
let a = 3;
function fn(){
//函数作用域1
    alert(a)
}
function fn2(){
//函数作用域2
    let a = 2;
    fn();
}
fn2()

在上面的代码中我们可以看到其中的函数作用域1里的a最终指向的是全局作用域 里的变量值3。如下图中fn()最终指向的是3

这是因为:函数作用域1里的a是全局环境里的子集,因此函数作用域1里的a最终指向的是全局作用域 里的变量值3

但是问题来了
我们要让函数作用域1里的a指向函数作用域2 里的变量值2,该如果做?
很简单我们只需要利用传参就可以了,具体为设置形参a,代码如下

//全局作用域
let a = 3;
function fn(a){
//函数作用域1
    alert(a)
}
function fn2( ){
//函数作用域2
    let a = 2;
    fn(a);
}
fn2()

最终显示为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值