美文网首页
一个简单的闭包的代码及解释

一个简单的闭包的代码及解释

作者: 本一和他的朋友们 | 来源:发表于2019-12-25 14:49 被阅读0次

    先看代码,猜输出是什么?

    function foo() {
        var a = 2;
    
        function bar() {
            console.log(a)
        }
    
        return bar;
    }
    
    var baz = foo();
    
    
    baz() // 2
    
    

    函数bar()的词法作用域能够访问foo()的内部作用域。然后我们将bar()函数本身当作一个值类型进行传递。在这个例子中,我们将bar所引用 的函数对象本身当作返回值。

    在foo()执行后,其返回值(也就是内部的bar()函数)赋值给变量baz并调用baz(),实际上只是通过不同的标识符引用调用了内部的函数bar();

    相关文章

      网友评论

          本文标题:一个简单的闭包的代码及解释

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