在外部想要使用函数内容的资源|数据,可以选择使用闭包
闭包:
外函数嵌套函数
外函数返回内函数
内函数中使用到外函数的资源
<script>
//闭包
function fun () {
var i=1;
return function (){
i++; //内函数中使用了外函数的资源,不会释放外函数的这个资源i
console.log(i);
}
}
console.log(fun());
var f=fun();
f();
f();
f();
//给花浇水的例子
function haha(ml){
function flower(name){ //要浇水的花的名字
if(ml>=50){
console.log("给"+name+"浇水50ml,"+'当前还剩'+(ml-=50));
}else{
console.log("请加水");
}
}
return flower;
}
var flower=haha(200);
flower("君子兰");
flower("忽忘我");
flower("康乃馨");
flower("玫瑰花");
flower("满天星");
</script>