第二个抽屉

【闭包】
[b]定义[/b]:
(Martin Fowler)
闭包的第一个关键点是闭包是一段代码加上和定义它的环境之间的绑定(they are a block of code plus the bindings to the environment they came from)。这是闭包和函数指针等其它相似技术的不同点。

第二个不同点不是定义形式的不同,但是也同样重要。(The second difference is less of a defined formal difference, but is just as important, if not more so in practice)。

[b]类别[/b]:函数
[b]绑定[/b]:晚绑定
[b]支持语言[/b]:几乎全部
[b]理解[/b]:
首先是匿名函数,其次是运行期间有独立的上下文,这个上下文与定义它的环境隐式绑定,第三三,书写方式不同。
[b]语义[/b]:一类计算,它不仅根据显式参数求值,同时针对域的相关上下文求值。
[b]可靠性[/b]:危险
[b]何时使用[/b]:A:如果未隐式绑定上下文,则当匿名函数使用;
B:如果绑定上下文,当“自适应”函数使用,即函数适应不同的实例进行计算求值。但是要将其所适应的上下文明确,个人建议对应的变量命名应该是:函数名+By+上下文名+常量名。
如果把值作为名称的一部分,会遇到当引用的具体常量值发生变化时,会遇到需要重构的情况。所以应该定义出一个常量,比如“工资大于1200”,1200这个值一般来说有个意义。
C:持续求值??:当应用域变量会根据域的上下文变化时,将变量定义为闭包的引用可以实现每次使用该变量时重新根据上下文进行计算。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值