创建闭包的最常见的方式就是:在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量。
function outer(){
var name = '夏明';
function inter(){
console.log('Hi'+name)
}
return inter;
}
var bibao = outer();
console.log(bibao) // ƒ inter(){ console.log('Hi'+name) }
console.log(bibao()) // Hi夏明
闭包本质上还是函数
应用场景:
可以用来管理私有变量和私有方法,将对变量(状态)的变化封装在安全的环境中,使得这些变量不能被外部随意修改,同时又可以通过指定的函数接口来操作。
闭包有三个特性:
函数嵌套函数 函数内部可以引用外部的参数和变量 参数和变量不会被垃圾回收机制回收
缺点:
常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。