追逐理想
如果你了解我,你就会喜欢我
摘要: 如何实现语言中的闭包(Closure) 已经忘了是去年还是前年听到微软说要在C# 3.0里为C#添加lambda表达式,与此同时Java的团队也一直在说想为Java添加lambda表达式。到了今天,C#似乎已经把这个特性加进去了,Java还没有。Java说这个特性还在计划列表之中,不过暂时可以使用匿名类来代替。想必是因为在Java中表示函数指针的方法比较奇怪罢…… 其实无论是lambda表达式(事实上应该叫匿名函数)或是匿名类,都能归属到一种叫闭包的东西上面。闭包原来是代数中的用语,只是那些研究理论的老大们觉得这玩意儿也能拉到“闭包”里面去,于是就叫闭包了。匿名函数原本是丘奇发明的一个l... 阅读全文
posted @ 2011-11-14 18:02 人间奇迹 阅读(592) 评论(0) 推荐(0) 编辑
摘要: view plain(function(){//这里忽略jQuery所有实现})();一、匿名函数 要说匿名函数,我们首先要由函数本身说起。函数的定义如下:函数是将唯一的输出值赋予给每一输入的“法则”。 当然,这只是数学上的定义。但是,在计算机编程语言中,函数的定义也八九不离十。因为,我们都知道,计算机中的函数,也类似数学定义中的描述,它是将输入的若干数据,经过代码设定的逻辑操作处理后,返回唯一的输出的一组代码组合块。——当然,特例是,输入的数据为空或输出的数据为空,或者两者都为空。 下面,我们先初步了解一下和匿名函数相关的概念。函数声明(function 语句) 要使用一个函数,我们... 阅读全文
posted @ 2011-11-14 17:59 人间奇迹 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 一、什么是闭包?“官方”的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。相信很少有人能直接看懂这句话,因为他描述的太学术。其实这句话通俗的来说就是:中所有的function都是一个闭包。不过一般来说,嵌套的function所产生的闭包更为强大,也是大部分时候我们所谓的“闭包”。看下面这段代码: function a() {vari=0; functionb() { alert(++i); } returnb; } varc=a(); c()... 阅读全文
posted @ 2011-11-14 17:54 人间奇迹 阅读(362) 评论(0) 推荐(0) 编辑