当前位置:嗨网首页>书籍在线阅读

37-闭包进阶

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

7.7 闭包进阶

如前所述,闭包是加强版的函数。它们也是第一类函数,这意味着它们可以添加变量,也可以作为参数传递给函数,甚至可以从函数返回。但是,它们与函数的区别在于,它们能够识别其声明的环境,并且可以引用上下文环境中的任何变量。从环境中引用变量的方式取决于变量在闭包内的使用方式。

默认情况下,闭包将尝试以最灵活的方式捕获变量。只有当程序员需要以某种特定方式捕获值时,它们才会强制执行,实现程序员的意图。除非我们看到不同类型的闭包在运行,否则这并没有多大的意义。闭包在系统底层是匿名的结构,它实现了3个特征,用于表示闭包如何访问其上下文环境。接下来我们将研究这3个特征(从限制最少到限制最多)。