闭包小案例

184 阅读1分钟

###闭包可以延长变量的生命周期

function fn1() {
    var num = 0
    function fn2() {
        for (var i = 0; i < 5; i++) {
            num++
            console.log(num)
        }
    }
}
fn1()()

###闭包可以提供有限的访问权限

function fn1() {
    var name = '帅顶', age = 18
    return {
        getName: function() {
            return name
        },
        setName: function(value) {
            if (!value.includes('丑')) {
                name = value
            }
        },
        getAge: function() {
            return age
        },
        setAge: function(value) {
            if (value < 20) {
                age = value
            }
        }
    }
}
var obj = fn1()
obj.setName('丑顶')
console.log(obj.getName()) // 帅顶