作用域

作者: 开心的小哈 | 来源:发表于2018-12-24 19:19 被阅读0次

scope存放的是作用域,他是阴式调用,我们调用不了
里面存储了运行期上下文集合
运行期上下文:当函数执行时(前一刻),会创建一个被称为执行期上下文的内部对象,一个执行器上下文定义了一个函数执行时的环境,函数每次执行时对应的执行上下文都是独一无二的,所以调用一个函数就会导致创建多个执行上下文,当函数执行完毕,他所产生的执行上下文就会被销毁.
查找变量:从作用域链的顶端依次向下查找
作用域链:[[scope]]中所储存的执行期上下文对象的集合,这个集合呈链式连接,我们把这种链接叫做作用域

function a(){
            function b(){
                var b = 234;
            }
            var a=123;
            b();
            
        }
        var glob=100;
        a();

练习

function a(){
            function b(){
                function c(){
                    
                }
                c();
            }
            b();
        }
        a();
        //作用域执行的顺序
        a defined a.[[scope]]----> 0:GO
        
        a doing a.[[scope]]---->0 : aAO
                                1 : GO
                            
        d defined d.[[scope]]---->0 : aAO
                                  1 : GO
                                  
        d doing d.[[scope]]---->0 : dAO
                                1 : aAO,
                                2 : GO,
        
        c defined c.[[scope]]---> 0 : dAO
                                  1 : aAO,
                                  2 : GO,
                                 
        c doing c.[[scope]]---->  0 : cAO
                                  1 : dAO,
                                  2 : aAO
                                  3 : GO,

闭包

function a(){
            function b(){
                var bbb=234;
                document.write(aaa)
            }
            var aaa=123;
            return b;
        }
        var glob=100;
        var demo=a();
        demo();
        
        //当a函数执行完的时候returnb此时demo就是b函数
        //当a的AO销毁时之前return之前定义了b保留a的作用域成果
        //当a的AO销毁之后return b执行,执行的时候b还是有a的AO
        //b执行作用域  0:bAO 中没有aaa
        //            1:aAO     有 访问
        //            2:GO
        //执行结果123
        //生成闭包 内部函数被保存到了外部.一定生成闭包

相关文章

  • js作用域

    1 - 作用域 1.1 作用域概述 全局作用域 局部作用域(函数作用域) 1.2 全局作用域 1.3 局部作用域 ...

  • 作用域,作用域链

    1 - 作用域 1.1 作用域概述 全局作用域 局部作用域(函数作用域) 1.2 全局作用域 1.3 局部作用域 ...

  • 变量作用域

    变量作用域:静态作用域、动态作用域JS变量作用域:JS使用静态作用域JS没有块级作用域(全局作用域、函数作用域等)...

  • 一网打尽 JavaScript 的作用域

    JavaScript 的作用域包括:模块作用域,函数作用域,块作用域,词法作用域和全局作用域。 全局作用域 在任何...

  • 作用域

    词法作用域,动态作用域,全局作用域,局部作用域,函数作用域,块级作用域,有些地方还能看到隐式作用域和显示作用域。 ...

  • JS的作用域

    JS的作用域: 全局作用域、函数作用域、eval 作用域、块级作用域 全局作用域: 函数作用域: 结果截屏: 说...

  • [ES6]1.1作用域

    作用域 全局作用域(global/window) 函数作用域/局部作用域(function) 块状作用域({}) ...

  • C - 作用域

    C - 作用域 一个 C 变量的作用域可以是: 块作用域 函数作用域 函数原型作用域 或 文件作用域 作用域描述程...

  • JavaScript作用域分类

    JavaScript作用域分类全局作用域局部作用域函数作用域块级作用域catchwithlet 和 const 什...

  • JS基础---05作用域

    JavaScript基础 1 - 作用域 1.1 作用域概述 全局作用域 局部作用域(函数作用域) 1.2 全局作...

网友评论

      本文标题:作用域

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