摘要: Javascript的对象中的私有属性其实就是环境中的非持久型变量,而在构造函数内用this.foo=function(){}形式定义的方法其实也是闭包的一种创建方式,只是他提供的是一个开发了"对外接口"的闭包.例如:View Code <script language="javascript"> function Foo(a){ function _Pc() //私有函数 { return a; } //公有函数,通过它产生的闭包可以访问对象内部的私有方法_Pc() this.ba... 阅读全文
posted @ 2012-04-06 13:16 unbreakable 阅读(129) 评论(0) 推荐(0) 编辑
摘要: View Code <script language="javascript" type="text/javascript"> /* 一个简单的计数器 */ function counter(iden,addi){ return function(){ iden=iden+addi; return iden; } } var c1=counter(0,1); var c2=counter(10,-1); for(var i=0;i<10;i++){ ... 阅读全文
posted @ 2012-04-06 13:05 unbreakable 阅读(107) 评论(0) 推荐(0) 编辑
摘要: (1)闭包的”包“是指闭包的内部环境对外部不可见,也就是说闭包具有控制外部域的能力但是又能防止外部域对闭包的反向控制。换句话说,闭包的领域是对外封闭的。(2)闭包的这一个特点不用过多解释,因为JavaScript闭包是通过function实现的,所以它天然是具有基本的函数特征,在闭包内申明的变量,闭包外的任何环境中都无法访问的,除非闭包想外部环境提供了访问他们的接口.例如:View Code <script language="javascript" type="text/javascript"> function down(m){ aler 阅读全文
posted @ 2012-04-06 12:33 unbreakable 阅读(160) 评论(0) 推荐(0) 编辑
摘要: (1)作用域的好处是内部函数可以访问定义他们外部函数的参数和变量(或者全局变量).(2)内部函数拥有比他的外部函数更长的生命周期.示例:View Code <script language="javascript" type="text/javascript"> function A(a){ return a; } function B(a){ return function(){ return a; ... 阅读全文
posted @ 2012-04-06 11:44 unbreakable 阅读(140) 评论(0) 推荐(0) 编辑