闭包:实现私有变量,以计数器为例。

167 阅读1分钟

js没有私有变量的概念,但是我们可以用闭包来模拟私有变量。
看一道面试题叭:
实现一个计数器,不依赖于外部变量。每次执行打印一个加1的数字。

function count() {
    let num = 0;
    function add() {
        num++;
        return num;
    }
    function reset() {
        num = 0;
        return num
    }
    return {
        add,
        reset
    }
}

let { add, reset } = count()

console.log(add());
console.log(add());
console.log(reset());
console.log(add());
console.log(add());

打印结果

image.png
通过return函数,再析构出具体的函数。这样就只能用该函数调用闭包中的变量了。


记录记录!