js中的闭包
闭包是程序开发中的一个专业术语,咋一听似乎很神秘,难以理解,查找官方解释:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分,似乎也难以理解。
不过在写一些js程序的时候,我们会不知不觉的用到一些闭包的知识。
说简单一点,其实闭包就是:子函数可以使用父函数中的局部变量,这种行为就叫做闭包!
<script type="text/javascript"> function diaoyu(){ var num=0; return{ diao:function(){ num++; }, count:function(){ alert("钓了"+num+"条鱼!!!"); } } } var obj = diaoyu(); obj.diao(); obj.count(); obj.diao(); obj.count(); </script>
从上面我们可以看到,当给obj赋值时,diaoyu方法执行,会返回一个包含两个自定义方法的对象,这时对象内部共同引用了diaoyu的num变量,当执行obj.diao()时,num变量加1之后值变为1,当再次执行后,num的值会变成2,这其实类似我们在使用高级语言时创建对象后,调用对象的方法修改对象的值很相似,当然,此处的闭包仅仅是指js的闭包。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。