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

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

作者: 本一和他的朋友们 | 来源:发表于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();

相关文章

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

    先看代码,猜输出是什么? 函数bar()的词法作用域能够访问foo()的内部作用域。然后我们将bar()函数本身当...

  • 20170815 前端开发日报

    JavaScript闭包,只学这篇就够了 闭包不是魔法 这篇文章使用一些简单的代码例子来解释JavaScript闭...

  • 快速理解闭包--js面向对象编程

    什么是闭包? 先看一段代码: 简单吧。再来看一段代码: 简单吧。 什么是闭包?这就是闭包! 有权访问另一个函数作用...

  • 闭包、定时器

    1、何为闭包?有什么用? 闭包专业的解释:闭包是有权访问另一个函数作用域的变量的函数。 简单的说,Javascri...

  • python闭包

    什么是闭包? 简单说,闭包就是根据不同的配置信息得到不同的结果 再来看看专业的解释:闭包(Closure)是词法闭...

  • JavaScript闭包

    什么是JS闭包? 先看一段代码: 再来看一段代码: 什么是闭包?这就是闭包!简单吧。 有权访问另一个函数作用域内变...

  • 带你一分钟理解闭包--js面向对象编程

    什么是闭包? 简单吧。再来看一段代码: 什么是闭包?这就是闭包!有权访问另一个函数作用域内变量的函数都是闭包。 这...

  • 深入理解js闭包

    什么是闭包 MDN的解释:闭包是函数和声明该函数的词法环境的组合。 简单讲,闭包就是指有权访问另一个函数作用域中的...

  • 深入理解js闭包

    什么是闭包 MDN的解释:闭包是函数和声明该函数的词法环境的组合。 简单讲,闭包就是指有权访问另一个函数作用域中的...

  • 什么是闭包(Closure)?

    如果不用代码来演示,你很难单用话语把它解释清楚 维基百科的解释 在计算机科学中,闭包(Closure)是词法闭包(...

网友评论

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

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