闭包
1 原理
1 俩个相互嵌套的函数 -- 当内部函数被return到外部, 声明变量接收且执行的时候 -- 这个函数会在执行体处访问它所在环境的外部函数的变量
2 这个被访问的外部函数就是闭包函数 -- 或者有人把这个过程叫做闭包
2 作用 -- 延申了变量的作用范围 / 实现封装, 属性私有化 / 模块化开发, 防止污染全局变量
3 危害 -- 闭包会导致原有作用域链不释放, 造成内存泄漏 (即内存占用过多)
4 简单实现闭包的代码
function a() {
var x = 9
function b() {
console.log(x);
}
return b
}
var hh = a()
hh() // 9