题目点评
闭包这个概念也是JavaScript中比较抽象的概念,也是JavaScript中的一个难点,要求对理论知识理解的比较透彻,概念性的东西一两句就讲完了,所以这道题目可以死记硬背,如果实在不能理解的话。
解题思路
闭包是什么
你可以这样回答:
我个人理解,闭包是就是函数中的函数,里面的函数可以访问外面函数的变量,外面的变量的是这个内部函数的一部分。
辅助理解
<script>
function outer(){
var num=0;//内部变量
return function add(){//通过return返回add函数,就可以在outer函数外访问了。
num++;//内部函数有引用,作为add函数的一部分了
console.log(num);
};
}
var func1=outer();//
func1();//实际上是调用add函数, 输出1
func1();//输出2
var func2=outer();
func2();// 输出1
func2();// 输出2
</script>
关系示意图
闭包的作用
1.使用闭包可以访问函数中的变量。
2.可以使变量长期保存在内存中,生命周期比较长。
加分项
闭包不能滥用,否则会导致内存泄露,影响网页的性能。闭包使用完了后,要立即释放资源,将引用变量指向null。