在我们js开发过程中,都会遇到递归、闭包。但是官网解释太深奥了,不利于我们的理解。
1.闭包
什么是闭包。我们先来看下下面的代码
function a(){
var n = 0;
function b() {
console.log(n++);
}
b();
b();
}
a(); //控制台输出0,再输出1
下面再来看下面一段代码
function a(){ var n = 0; this.b = function () { console.log(n++); }; } var c = new a(); c.b(); //控制台输出0 c.b(); //控制台输出1
什么是闭包?这就是闭包!
有权访问另一个函数作用域内变量的函数都是闭包。这里 b 函数访问了构造函数 a 里面的变量 n,所以形成了一个闭包。
浙公网安备 33010602011771号