美文网首页
什么是闭包?

什么是闭包?

作者: 郭银蕾 | 来源:发表于2018-05-28 19:47 被阅读0次

闭包: 

  在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。

一般情况下,在我们认知当中,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。

#闭包函数的实例

# outer是外部函数 a和b都是外函数的临时变量

def outer( a ):

     b = 10

    # inner是内函数

    def inner():

        #在内函数中 用到了外函数的临时变量

        print(a+b)

    # 外函数的返回值是内函数的引用

return inner

if __name__ == '__main__':

    # 在这里我们调用外函数传入参数5

    #此时外函数两个临时变量 a是5 b是10 ,并创建了内函数,然后把内函数的引用返回存给了demo

    # 外函数结束的时候发现内部函数将会用到自己的临时变量,这两个临时变量就不会释放,会绑定给这个内部函数

    demo = outer(5)

    # 我们调用内部函数,看一看内部函数是不是能使用外部函数的临时变量

    # demo存了外函数的返回值,也就是inner函数的引用,这里相当于执行inner函数

    demo() # 15

    demo2 = outer(7)

    demo2()#17

相关文章

  • 前端常见问题总结

    什么是闭包?闭包的用途是什么?闭包的缺点是什么? 什么是闭包 闭包:内部函数总是可以访问其所在的外部函数中声明的参...

  • python函数部分

    什么是闭包,闭包的常用用法,怎样判断是不是闭包,闭包的作用是 1、什么是闭包 2、常用用法 3、判断是不是闭包 4...

  • 闭包、call-apply-bind 的用法 、HTTP状态码

    一、什么是闭包?闭包的用途是什么?闭包的缺点是什么? 答 :1、什么是闭包:如果一个函数用到了外部的变量,那么这个...

  • Escaping Closures - Swift

    逃逸闭包和非逃逸闭包 逃逸闭包(escaping closure),什么是逃逸闭包?苹果官方给的定义是:当一个闭包...

  • 深入解析Javascript闭包及实现方法

    一、什么是闭包和闭包的几种写法和用法 1、什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的...

  • 面试题(day-2)

    1 ,什么是闭包?闭包有什么好处?使用闭包要注意什么? 闭包:函数嵌套函数,内部函数可以引用外部函数的参数和变量,...

  • 闭包,定时器

    问题 1.什么是闭包? 有什么作用 闭包(英语:Closure),又称词法闭包(Lexical Closure)或...

  • python函数之闭包

    目录 python函数之闭包什么是闭包python中的namespace闭包的条件闭包的优点 python函数之闭...

  • 再次学习 Swift 闭包

    Swift 闭包 1. 什么是闭包? 闭包是自包含的函数代码块,可以在代码中被传递和使用。 2. 闭包能做什么? ...

  • 前端面试题

    1 ,什么是闭包?闭包有什么好处?使用闭包要注意什么? 详情可参考:http://www.jianshu.com/...

网友评论

      本文标题:什么是闭包?

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