js闭包

59 阅读1分钟
// es6 的写法  
//当let a = add()和let b = add()时分别调用a()和b()中的count是独立的
let add = (()=>{
    let count = 0;
    return ()=> count++
})

// es6 的写法 自调用
let add = (()=>{
    let count = 0;
    return ()=> count++
})()


// es5 的写法
let add = (function(){
    let count = 0;
    return function(){
        return count++
    }
})

// es5 的写法  自调用
let add = (function(){
    let count = 0;
    return function(){
        return count++
    }
})()