扫码关注官方订阅号
看了一些资料还是不太理解,有没有简单通俗一点的解释。
欢迎选择我的课程,让我们一起见证您的进步~~
通俗的解释:
想象一下每个函数执行的时候,都会在背地里建立一个对象V。函数内定义的所有局部变量(包括函数参数)都放在这个对象上,作为这个对象的属性。就是说我们访问函数的局部变量时,实际上就是访问的对象V的一个属性而已。
这个对象V经常被叫做变量对象,顾名思义就是存放变量的对象。
每个函数在运行时都会自动建立一个变量对象V。而且内部函数的变量对象里面有一个指针指向外部函数的变量对象。
假设由于这个指针的存在,导致若干个嵌套了N层的函数在运转时形成了一个链表结构。这个链表经常被叫做作用域链。
注:
注意变量对象和作用域链都是运行时概念。而且是JS引擎的内部机制,从代码的角度是不可见的。
如果看到这里你还不能彻底明白,那么你应该去看一下数据结构中的链表那一节了。
反复看这系列文章,反复看几遍http://www.cnblogs.com/TomXu/archive/2012/01/18/2312463.html
一句话总结:
scope chain = 变量对象 + [scope chain];
变量对象就是当前执行的函数,[scope chain]是这个变量对象定义时所处的作用域链。
[scope chain]
这样的情况不仅仅是js出现过,在python里面也同样出现过。Key:对象的方法返回的对象还可以执行方法。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
通俗的解释:
想象一下每个函数执行的时候,都会在背地里建立一个对象V。函数内定义的所有局部变量(包括函数参数)都放在这个对象上,作为这个对象的属性。就是说我们访问函数的局部变量时,实际上就是访问的对象V的一个属性而已。
这个对象V经常被叫做变量对象,顾名思义就是存放变量的对象。
每个函数在运行时都会自动建立一个变量对象V。而且内部函数的变量对象里面有一个指针指向外部函数的变量对象。
假设由于这个指针的存在,导致若干个嵌套了N层的函数在运转时形成了一个链表结构。这个链表经常被叫做作用域链。
注:
注意变量对象和作用域链都是运行时概念。而且是JS引擎的内部机制,从代码的角度是不可见的。
如果看到这里你还不能彻底明白,那么你应该去看一下数据结构中的链表那一节了。
反复看这系列文章,反复看几遍
http://www.cnblogs.com/TomXu/archive/2012/01/18/2312463.html
一句话总结:
scope chain = 变量对象 + [scope chain];变量对象就是当前执行的函数,
[scope chain]是这个变量对象定义时所处的作用域链。这样的情况不仅仅是js出现过,在python里面也同样出现过。
Key:对象的方法返回的对象还可以执行方法。