上下文-作用域-作用域链-闭包

个人对javascript中上下文,作用域,作用域链,闭包的理解。

执行上下文:通过栈维护执行上下文,全局在栈底,当上面的执行了就会被推出栈,再执行下面的。可以理解为一个包含变量对象、活动对象,作用域链和this的数据结构。

作用域:就是作用范围,就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。

作用域链:作用域链中的每一个元素定义了一组作用域内的变量,当我们要查找变量x的值,从作用域的第一个元素中找这个变量,没找到就找下一个元素,直到链尾。

闭包:至于闭包,就是为了达到一种局部变量在作用范围外可以被调用的效果。就像局部变量当成“全局”变量一样可以使用,扩大局部变量的作用范围。

就像一个桶(执行上下文)里面装了一根绳子(作用域链),绳子上系着多个小盒子(作用域),每个盒子里面装着一些东西。

闭包就以父子对象来理解:(1)父对象有的子对象可以有,反之不行。(2)子对象是依赖于父对象存在的,所以当返回子对象的时候,可以通过子对象去访问父对象中的变量。(3)js中的作用域和作用域链的规定中,是可以从子级向父级访问的,例如说先访问被嵌套函数内的对象的变量,再访问嵌套函数中的变量,再访问全局变量等。就是由于这样的作用域关系和作用域链访问顺序来实现闭包的。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值