javascript中闭包的2种经典用法
2014-11-04 18:35
453 查看
闭包这个东西,网上有很多介绍资料。个人看了很多,还是一知半解。这里不做理论介绍,直接给出2个例子。
代码1:记录函数被调用的次数
这种方式类似C语言中的private static变量,能够保持局部变量的内存不释放。
代码2:正确给DOM注册事件处理函数
代码1:记录函数被调用的次数
function a() { var i = 0; function b() { return ++i; } return b; } var c = a(); c();//1 c();//2
这种方式类似C语言中的private static变量,能够保持局部变量的内存不释放。
代码2:正确给DOM注册事件处理函数
<body> <input type="button" id="b1" value="1"> <input type="button" id="b2" value="2"> <input type="button" id="b3" value="3"> <input type="button" id="b4" value="4"> <script type="text/javascript"> var buttons = document.getElementsByTagName("input"); for (var i = 0; i < buttons.length; i++) { // 方式1:i的值一直是3 //buttons[i].onclick = function() { // console.log(i + " was clicked."); //} // 方式2:从0到3,是我们要的效果 (function(i){ buttons[i].onclick = function() { console.log(i + " was clicked."); } })(i); } </script> </body>
相关文章推荐
- JavaScript学习-闭包的经典例子
- JavaScript封装的常用工具类库bee.js用法详解【经典类库】
- JavaScript同步、异步、回调执行顺序之经典闭包(setTimeout面试题分析)
- JavaScript作用域、闭包、对象与原型链概念及用法实例总结
- 再谈javascript闭包--Javascript高级用法 ----在Javascript中,什么是闭包(Closure)
- JS中闭包的经典用法小结(2则示例)
- javascript中闭包的原理与用法小结(转)
- 闭包用法:经典案例
- 闭包用法:经典案例
- javascript 典型闭包的用法
- JavaScript同步、异步、回调执行顺序之经典闭包setTimeout面试题分析
- 全面理解JavaScript中的闭包的含义及用法
- 闭包用法:经典案例
- javascript的闭包深入理解 (很经典,经典!!!)
- JavaScript的小小总结!变量类型、对象声明、this用法、原型、匿名函数、闭包和自执行函数
- 前端,别闹 学习Javascript闭包(Closure)及几个经典面试题理解
- 闭包的两种经典用法(新手级)
- 韩顺平 javascript教学视频_学习笔记20_多态经典案例_补讲闭包细节
- 闭包用法:经典案例
- 55个javascript经典用法