闭包就是一个函数,一个外部函数通过调用函数并return返回出内部函数,这里的内部函数就是一个闭包;此时在内部函数中是可以访问到外部函数的变量的;
1 | function a(){ |
优点
可以读取函数内部变量
可以避免全局污染
缺点
闭包会导致变量不会被垃圾回收机制清除,消耗内存
不恰当的闭包会造成内存泄露
作用域链、栈内存、堆内存
数据 | 内存地址 |
---|---|
变量,原始数据类型 | 栈内存 |
引用类型 | 堆内存 |
闭包就是一个函数,一个外部函数通过调用函数并return返回出内部函数,这里的内部函数就是一个闭包;此时在内部函数中是可以访问到外部函数的变量的;
1 | function a(){ |
优点
可以读取函数内部变量
可以避免全局污染
缺点
闭包会导致变量不会被垃圾回收机制清除,消耗内存
不恰当的闭包会造成内存泄露
作用域链、栈内存、堆内存
数据 | 内存地址 |
---|---|
变量,原始数据类型 | 栈内存 |
引用类型 | 堆内存 |