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

函数作用域在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()

最终显示为


本文来源于本作者的博客:https://blog.csdn.net/webdaoyang/article/details/82526297
更多的前端知识请点击博客:https://blog.csdn.net/webdaoyang

你可能感兴趣的:(前端知识——浅谈函数作用域指向的基础知识(一))