函数闭包
好处:
- 使用了闭包,可以上局部变量不随着原函数销毁而销毁
- 使用闭包可减少全局变量的定义
闭包定义三个条件:
- 函数内 嵌套 函数
- 内部嵌套的函数用到了外部函数的函数变量
- 外部函数把内部函数作为返回值 return出去
示例1:
// 闭包定义示例
function openFun(){
var a=1;
return function(){
console.log(a)
}
}
openFun()();
展示:
示例2:
// 闭包定义示例2
function openFun(){
var a=1;
var sum=0;
return function(){
sum += a;
console.log(sum)
}
}
var inner = openFun();
inner();
展示:
销毁闭包中的局部变量的方法:
手动赋值为null
示例:
function st(){
var a=0;
return function(arg){
a = arg;
console.log(a);
}
}
var inner = st();
inner(1)
展示: