JS中闭包的经典用法小结(2则示例)
本文实例总结了JS中闭包的经典用法。分享给大家供大家参考,具体如下:
闭包这个东西,网上有很多介绍资料。个人看了很多,还是一知半解。这里不做理论介绍,直接给出2个例子。
代码1:记录函数被调用的次数
functiona() { vari=0; functionb() { return++i; } returnb; } varc=a(); c();//1 c();//2
这种方式类似C语言中的privatestatic变量,能够保持局部变量的内存不释放。
代码2:正确给DOM注册事件处理函数
<body> <inputtype="button"id="b1"value="1"> <inputtype="button"id="b2"value="2"> <inputtype="button"id="b3"value="3"> <inputtype="button"id="b4"value="4"> <scripttype="text/javascript"> varbuttons=document.getElementsByTagName("input"); for(vari=0;i<buttons.length;i++) { //方式1:i的值一直是3 //buttons[i].onclick=function(){ //console.log(i+"wasclicked."); //} //方式2:从0到3,是我们要的效果 (function(i){ buttons[i].onclick=function(){ console.log(i+"wasclicked."); } })(i); } </script> </body>
更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。