闭包-计数器困境

2020-08-06  本文已影响0人  温酒居士

闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。直观的说就是形成一个不销毁的栈环境。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p>局部变量计数。</p>
<button type="button" onclick="myFunction()">计数!</button>
<p id="demo">0</p>
<script>
    var add = (function () {
        var counter = 0;
        console.log("======"+counter)
        return function () {return counter += 1;}
    })();
    //返回一个方法
    console.log(add)
    //返回方法的执行结果
    console.log(add())
    function myFunction(){
        document.getElementById("demo").innerHTML = add();
    }
</script>

</body>
</html>

https://www.runoob.com/js/js-function-closures.html

公众号.png
上一篇 下一篇

猜你喜欢

热点阅读