编辑代码

/**
 * 产生一个闭包都会产生一个独立数据存储空间,数据被存储闭包空间中,不被释放
*/

function A() {
    let index = 0

    add = function() {
        index++
    }

    remove = function() {
        index--
    }

    return function() {
        console.log(index)
    }
}

let B = A()

B() // 0

let C = A()

C()  // 0

add()

B()  // 0

C()  // 1

// 全局变量被重写,被关联在C闭包空间中,add() remove() 重写声明了方法