欢迎使用CSDN-markdown编辑器

来源:互联网 发布:海量数据与数据港谁好 编辑:程序博客网 时间:2024/05/22 11:30

开启我的Java成神之路

1.作用域链的理解

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