欢迎使用CSDN-markdown编辑器

开启我的Java成神之路

1.作用域链的理解

每一段JavaScript代码(全局对象或函数)都有一个与之相关的作用域链.这个作用域链其实就是一组对象列表.这个对象列表存的就是这个函数可以访问的对象数据.
当函数被创建时,作用域链就会被这个函数可访问的对象数据填充.
当函数被调用时,JavaScript会创建一个上下文执行对象,这个对象也有作用域链,但是会调用函数的作用域链来初始化一个活化对象中,并且将活化对象放入上下文的作用域链前端.
在执行的过程中,Javascript没遇到一个对象都会去上下文作用域链中寻找是否有该对象.如果没有就会说该对象未定义.
(每次调用函数时,都会创建一个新对象来保存函数的局部变量,并将该对象放入该函数的作用域链.当函数返回时,就将这个对象给删除.如果有嵌套函数,嵌套函数也会有个作用域链,该作用域链会指向上一级函数的对象.如果嵌套函数只是在上一级函数中,当上一级函数返回时,他的作用域链指向的上一级对象和上一级函数的作用域链指向的存局部变量的对象一起一起消失.但是当有一个引用指向这个嵌套函数时,就不会消失)
对于嵌套函数来说,每次调用外部函数时,内部函数都会重新定义一遍.所以说内部函数的代码相同,但是关联这个函数的作用域却是不同的.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值