js面试题

104 阅读1分钟

1、闭包

(1)闭包产生的条件

1、函数嵌套函数

2、变量在外面函数声明,在里面函数使用

     这个内部函数一直保持有对外部函数中作用域的访问权限(小盒子一直可以有大盒子的访问         权限)

下面是闭包的例子:

function foo(){
    var a  = 10;
    return function(){
       return ++a
    }
}
var c = foo();
console.log(c());
console.log(c());

打印的结果是 11 12

(2)闭包的坏处

会造成内存泄漏