JS中闭包的特性及其优缺点

4,996 阅读1分钟

function test(){
    var age=18;
    function  addAge(){
        age++;
        alert(age);
    }
    return addAge;
}
    var fn=test();    fn();//弹出19

闭包有三个特性:

1.函数嵌套函数;

2.内部函数使用外部函数的参数和变量;

3.参数和变量不会被垃圾回收机制回收。

闭包的好处:

1.希望一个变量长期保存内存中;

2.避免全局变量污染;

3私有成员的存在。

闭包的缺点:

1.常驻内存,增加内存使用量;

2.使用不当造成内存泄漏。