作用域 - 如何简单解释javascript中的scope chain?
本文介绍了作用域 - 如何简单解释javascript中的scope chain?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
看了一些资料还是不太理解,有没有简单通俗一点的解释。
解决方案
通俗的解释:
想象一下每个函数执行的时候,都会在背地里建立一个对象V。函数内定义的所有局部变量(包括函数参数)都放在这个对象上,作为这个对象的属性。就是说我们访问函数的局部变量时,实际上就是访问的对象V的一个属性而已。
这个对象V经常被叫做变量对象,顾名思义就是存放变量的对象。
每个函数在运行时都会自动建立一个变量对象V。而且内部函数的变量对象里面有一个指针指向外部函数的变量对象。
假设由于这个指针的存在,导致若干个嵌套了N层的函数在运转时形成了一个链表结构。这个链表经常被叫做作用域链。
注:
注意变量对象和作用域链都是运行时概念。而且是JS引擎的内部机制,从代码的角度是不可见的。
如果看到这里你还不能彻底明白,那么你应该去看一下数据结构中的链表那一节了。
这篇关于作用域 - 如何简单解释javascript中的scope chain?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文