JS中函数的词法作用域

Posted 李坚doit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中函数的词法作用域相关的知识,希望对你有一定的参考价值。

javascript中,每一个函数都拥有自己的词法作用域。简单理解就是,每个函数在被定义(注意不是调用!)时,都会创建一个属于自己的环境(作用域)。

比如,

function foo(){
    var  a = 1; 
foo2(); }
function foo2(){ console.log(a); }
fon();

运行结果:

ReferenceError: fon is not defined.

因为,函数foo2在被定义时,它可以访问的环境只有全局作用域和它自己的函数作用域,并不能访问到函数foo中的变量a。

当调用函数foo时,会执行foo2,此时的foo2会在它的自发作用域中找a,由于并不能找到变量a,所以系统就会报错了。



以上是关于JS中函数的词法作用域的主要内容,如果未能解决你的问题,请参考以下文章

js中的词法作用域

js中的词法作用域

js 词法作用域揭秘

js 欺骗词法作用域

什么是作用域, 什么事闭包, 什么事原型链

理解闭包