JS中闭包的经典用法小结(2则示例)
本文实例总结了JS中闭包的经典用法。分享给大家供大家参考,具体如下:
闭包这个东西,网上有很多介绍资料。个人看了很多,还是一知半解。这里不做理论介绍,直接给出2个例子。
代码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面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
相关文章
three.js中点对象(Point)和点材质(PointsMaterial)的具体使用
本文主要介绍了three.js中点对象(Point)和点材质(PointsMaterial)的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-07-07
JavaScript使用readAsDataURL读取图像文件
这篇文章主要为大家详细介绍了JavaScript使用readAsDataURL读取图像文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-05-05
document.all与getElementById、getElementsByName、getElementsByT
Document.all[]是文档中所有标签组成的一个数组变量,包括了文档对象中所有元素2008-12-12


最新评论