利用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>
上一篇下一篇

猜你喜欢

热点阅读