js闭包的理解

112 阅读1分钟

闭包是js一个概念,描述了作用域上的联系。

在js中只有内部作用域能访问外部作用域,如果需要暴露内部作用域则需要闭包(js的模块化的概念也源于此,避免了变量污染以及作用域间的相互引用)。

对闭包的理解

闭包简单来说就是提供外部作用域访问内部作用域的一个途径,所以闭包必然返回一个引用(大多数是函数,实际上一个对象也可以实现功能),例如:

function id () {
    let count = 1
    return () => {
        return count++
    }
}
function myMoney () {
    let money = 10
    return {
        income (count) {
            money += count
        },
        const (count) {
            money -= count
        },
        show () {
            return money
        }
    }
}