作用域链概念介绍

Posted 萧诺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作用域链概念介绍相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
    <script type="text/javascript">
        // 作用域链
        // 每一个函数都有一个作用域, 如果一个函数内部又嵌套链另外一个函数,
        // 嵌套的函数也会又一个作用域,这样,嵌套函数就能访问到外部函数中的变量,
        // 以及全局作用域中的变量,此时就形成了一条作用域链
        // (包括:自身的作用域, 以及外部函数的作用域, 以及全局作用域)

        // 全局作用域: script标签包裹的内容就是一个作用域
        var abc = 123;

        // fn 中能访问到的变量由那些:
        // 1 自身定义的变量
        // 2 上一级作用域中的变量(全局作用域)

        // foo 中能访问到的变量由那些:
        // 1 自身定义的变量
        // 2 函数fn中的变量
        // 3 全局作用域中的变量
        function fn() {
            var a = 456;

            function foo() {
                var num = 123;

                // f的作用域链: f作用域 -> foo作用域 -> fn作用域 -> 全局作用域
                function f() {}
            }
            foo();
            // console.log(num);
        }
    </script>
</body>
</html>

 

以上是关于作用域链概念介绍的主要内容,如果未能解决你的问题,请参考以下文章

js 作用域和作用域链

JS作用域作用域链

JS 作用域及作用域链

JS 作用域及作用域链

javscript闭包的准备工作 -- 作用域与作用域链

JavaScript 开发进阶:理解 JavaScript 作用域和作用域链