什么是闭包?
闭包
定义:闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。
特征:
1 函数内再嵌套函数
2 返回内层函数
3 内层函数的返回值不会被释放
4 内部函数可以引用外层的参数和变量
5 参数和变量不会被垃圾回收机制回收
局部变量可以被释放,全局变量是不会被释放
闭包的应用场景:如果你想访问函数体内的变量,那么就用闭包
ps:闭包占用内存,请谨慎使用
<script> //闭包函数 function outerFun1() { var num = 111; return function () { num++; return num; } } var num=outerFun1(); console.log(num()); console.log(num()); console.log('*****************************************') //普通函数 function outerFun2() { var num = 111; function inner() { num++; return num; } console.log(inner()); } outerFun2(); outerFun2(); </script>
还没有评论,来说两句吧...