JS中闭包的特性及其优缺点

238 阅读1分钟
function student() {
    var age = 22
    function getUser() {
        var name = '张三'
        console.log('姓名:'+name,'年龄:'+age)
    }
    return getUser
}
var fn = student()
fn() // 姓名:张三 年龄:22

闭包有三个特性:

  • 函数嵌套函数
  • 函数内部可以使用外部的参数和变量
  • 参数和变量不会被GC回收

闭包的好处:

  • 变量长期存储在内存中
  • 避免全局污染
  • 私有成员的存在

闭包的缺点:

  • 长期存储在内存,增加内存的使用
  • 使用不当容易造成内存泄漏