作用域

不打扰是莪最后的温柔 提交于 2019-11-28 09:56:00

javascript中有个作用域的概念。

  1. 全局作用域
  2. 函数作用域

作用域取决于函数定义的地方,与函数执行无关。

 

 

function F1() {


    var a = 100;
    return function () {
        console.log(a)
    }
}
var f1 = F1();
var a = 200;
f1()

这段代码打印结果: 100; 我们这样来看,

F1定义的时候,作用域已经生成。

 

然后,把F1 赋值给 f1, 此时,f1 是一段函数,如下:

function() {
    console.log(a)
}
复制代码

然后,定义了一个全局变量a,在全局环境去执行f1.

注意: 作用域取决于函数定义的地方,与函数执行无关。

此时f1执行,去找a的变量,F1的局部作用域去找。

他会找到a = 100; 而不是a=200;


作用域是分层的,内层作用域可以访问外层作用域的变量,反之则不可以
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!