利用Js闭包实现点赞
2018-08-15 本文已影响30人
老衲灬
代码如下:
<body>
<input type="button" value="赞(0)"><br>
<input type="button" value="赞(0)"><br>
<input type="button" value="赞(0)">
</body>
<script type="text/javascript">
//定义一个函数形成闭包,zanAdd函数内的fn函数作为点赞事件绑定的函数
function zanAdd(){
var n = 0;
var fn = function(){
return this.value="赞("+ ++n+")";
}
return fn;
}
//获取节点对象
var inp = document.getElementsByTagName("input");
//循环绑定点击事件
for(var i=0;i<inp.length;i++){
var fn = zanAdd()
inp[i].onclick = fn;
}
/*
此段代码供加深理解:
var a = zanAdd();
console.log(a()); //赞(1)
console.log(a()); //赞(2)
console.log(a()); //赞(3)
var b = zanAdd();
console.log(b()); //赞(1)
console.log(b()); //赞(2)
console.log(b()); //赞(3)
*/
</script>