js作用域,作用域链

在很多语言中,都有作用域这个概念,所谓作用域,就是在一个代码块中变量或函数的范围。而js中也是有这一特性的。要弄清作用域,就要先理解执行环境,它是js中最重要的 一个概念,执行环境定义了变量或函数有权访问的其他数据。它是代码执行的一个环境,规定了一个范围。

每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中,虽然我们无权访问到这个对象,但底层在解析运行我们的代码时会使用到它。

如下例子:

function add(){

        var a=8;b=9;

        return a+b;

}

在这样一个简单的函数中,就有一个作用域,即函数范围内的环境。这个函数就有一个变量对象,这个变量对象存储着两个变量a,b.这就是一个对作用域的简单理解。

作用域链

还拿上面的函数作说明,作用域链是作用域的链,只不过是这个链表从当前执行代码所处的环境开始,慢慢着他的父执行环境(父执行环境就是当前环境所处的哪个环境)。代码执行过程中,首先会在当前作用域寻找所要使用的变量或函数,找到了继续执行,找不到就向上找(即找它的父执行环境),直到找到为止。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值