function outter(){ //外层函数
var inner = 0; //定义内部私有变量
return function (){ //返回一个内层函数
return inner++; //内层中引用了外层的 inner 变量。
}
}
var obj1 = outter(); //外层函数将引用了inner的内层函数 返回给 对象obj1,构成闭包。
alert(obj1()); //inner == 0
alert(obj1()); //inner == 1
alert(obj1()); //inner == 2
var other1 = outter(); //另一个 闭包。
alert(other1()); //inner == 0
alert(other1()); //inner == 1
alert(obj1()); //inner == 3
obj1 = null;//解除引用,inner被回收
obj1 = outter(); //重新构成闭包。
alert(obj1()); //inner == 0
alert(obj1()); //inner == 1
var inner = 0; //定义内部私有变量
return function (){ //返回一个内层函数
return inner++; //内层中引用了外层的 inner 变量。
}
}
var obj1 = outter(); //外层函数将引用了inner的内层函数 返回给 对象obj1,构成闭包。
alert(obj1()); //inner == 0
alert(obj1()); //inner == 1
alert(obj1()); //inner == 2
var other1 = outter(); //另一个 闭包。
alert(other1()); //inner == 0
alert(other1()); //inner == 1
alert(obj1()); //inner == 3
obj1 = null;//解除引用,inner被回收
obj1 = outter(); //重新构成闭包。
alert(obj1()); //inner == 0
alert(obj1()); //inner == 1
