javascript 闭包

function closure(a,b){
    var base = 1
    return function(c,d){
        base += 1
        console.log(base)
        return base + a + b + c + d
    }
}

var c = closure(1,2)  //此时c 就是一个闭包,closure 是一个返回或者叫制造函数的函数

c(3,4)//闭包开始调用,因为返回的函数引用了制造函数里面的参数,所以如果c 不释放,它引用的变量就一直在内存里面保留.

这也就是闭包的特性之一.还有就是闭包内部成员是对外不可见的,这是它的第二个重要特性.

 

posted @ 2017-07-07 16:14  JonasYu  阅读(245)  评论(0编辑  收藏  举报