javascript图解之作用域链
在这篇文章中,我假设您了解执行上下文的基本知识:不过,我很快也会就此写一篇文章😃 让我们看看下面的代码: const name = "Lydia" const age = 21 const city = "San Francisco" function getPersonInfo() { const name = "Sarah" const age = 22 return `${name} is ${age} and lives in ${city}` } console.log(getPersonInfo()) 我们正在调用getPersonInfo函数,该函数返回一个字符串,其中包含name、age和city变量的值: Sarah 22 San Francisco。但是,getPersonInfo函数不包含名为city🤨?它怎么知道city的值? 首先,为不同的上下文设置内存空间。我们有默认的全局上下文(浏览器中的窗口、节点中的全局)和已被调用的getPersonInfo函数的局部上下文。每个上下文也有一个作用域链。 对于getPersonInfo函数,作用域链看起来像这样(不用担心,它现在还不一定有意义): 作用域链基本上是对对象的“引用链”,这些对象包含对在该执行上下文中可引用的值(和其他作用域)的引用。(⛓):“嘿,这些都是您可以在此上下文中引用的值”。