作用域 - 如何简单解释javascript中的scope chain?

查看:109
本文介绍了作用域 - 如何简单解释javascript中的scope chain?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

看了一些资料还是不太理解,有没有简单通俗一点的解释。

解决方案

通俗的解释:

  1. 想象一下每个函数执行的时候,都会在背地里建立一个对象V。函数内定义的所有局部变量(包括函数参数)都放在这个对象上,作为这个对象的属性。就是说我们访问函数的局部变量时,实际上就是访问的对象V的一个属性而已。

  2. 这个对象V经常被叫做变量对象,顾名思义就是存放变量的对象。

  3. 每个函数在运行时都会自动建立一个变量对象V。而且内部函数的变量对象里面有一个指针指向外部函数的变量对象。

  4. 假设由于这个指针的存在,导致若干个嵌套了N层的函数在运转时形成了一个链表结构。这个链表经常被叫做作用域链

注:

  1. 注意变量对象和作用域链都是运行时概念。而且是JS引擎的内部机制,从代码的角度是不可见的。

  2. 如果看到这里你还不能彻底明白,那么你应该去看一下数据结构中的链表那一节了。

这篇关于作用域 - 如何简单解释javascript中的scope chain?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆