• 技术文章 >常见问题

    闭包是什么

    藏色散人藏色散人2019-08-03 09:49:25原创5757

    闭包是什么?

    计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。

    所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。

    闭包的概念出现于60年代,最早实现闭包的程序语言是Scheme。之后,闭包被广泛使用于函数式编程语言如ML语言和LISP。很多命令式程序语言也开始支持闭包。

    在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。运行时,一旦外部的 函数被执行,一个闭包就形成了,闭包中包含了内部函数的代码,以及所需外部函数中的变量的引用。其中所引用的变量称作上值(upvalue)。

    闭包一词经常和匿名函数混淆。这可能是因为两者经常同时使用,但是它们是不同的概念。

    以上就是闭包是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:闭包
    上一篇:ins是什么 下一篇:什么是ins
    大前端线上培训班

    相关文章推荐

    • JavaScript中闭包的含义是什么以及如何使用它• Javascript闭包的代码示例• PHP闭包的详细介绍(附代码)• js中闭包是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网