function test2(){//非闭包
var count=0;
count++;
return count;
}
console.log(test2());//=>1
console.log(test2());//=>1
function test(){//闭包
var count=0;
function fun(){
count++;
return count;
}
return fun;
}
var func=test();
console.log(func());//=>1
console.log(func());//=>2
个人理解: 闭包将count放在内存中不释放,当再次访问时从内存中取值(大神请指教)
function once(){
var used = false;
return function(){
if(!used){
used=true
console.log("unused");
} else {
console.log("used")
}
}
}
var test = once()
test()
test()
test()