我目前正在阅读有关 Scope Chaining 的内容,并想解释一下我对这个概念的理解,以确定我是否正确理解它。
我的理解是这样的:
- 初始化新函数时,会自动创建该函数的对象
- 该对象具有定义要在该函数中使用的变量的属性
- 该对象被添加到已创建的对象链中
- 如果我有几个嵌套函数,那么这些函数中的每一个都将代表作用域链中的一个分层对象。嵌套函数越深,其相对对象所在的链越远。(定义其变量的对象)。
因此,在实践中,如果函数 1 包含函数 2,函数 2 包含函数 3,并且函数 3 尝试访问变量 - 解释器将向上移动范围链(从其自己的本地范围开始)以尝试找到该变量并会一直这样做到最上面的函数,第一次找到它就停止吗?
如果您能告诉我我是否完全在这里吠叫错误的树,或者我是否总体上走在正确的轨道上,那就太好了?
谢谢,乔丹