把作用域链比喻成一个建筑

作者: 深度剖析JavaScript | 来源:发表于2021-04-13 20:58 被阅读0次
    前言

    最近在看《YOU DON’T KNOW JS》一书,里面讲到作用域的嵌套,内容主要讲了两点:
    一是作用域嵌套产生由来,其实就是当一个块或函数嵌套在另一个块或函数中时,就发生了作用域的嵌套;
    二是查找变量的规则,引擎从当前的执行作用域开始查找变量,如果找不到,就向上一级继续查找。当抵达最外层的全局作用域时,无论找到还是没找到,查找过程都会停止
    另外还有一个比喻我觉得挺有意思,也很好地帮我们理解作用域链,我将原文内容分享出来

    把作用域链比喻成一个建筑

    文中作者将作用域链比喻成一个建筑,建筑代表程序中的嵌套作用域链。第一层楼代表当前的执行作用域,也就是你所处的位置。建筑的顶层代表全局作用域。

    LHSRHS引用都会在当前楼层进行查找,如果没有找到,就会坐电梯前往上一层楼,如果还是没有找到就继续向上,以此类推。一旦抵达顶层(全局作用域),可能找到了你所需的变量,也可能没找到,但无论如何查找过程都将停止

    参考资料

    《YOU DON’T KNOW JS》

    相关文章

      网友评论

        本文标题:把作用域链比喻成一个建筑

        本文链接:https://www.haomeiwen.com/subject/qhoclltx.html