闭包

131 阅读1分钟
  • 概念:函数嵌套函数,且内部函数调用父级作用域的变量

    • 函数套函数
    • 子函数使用父函数中的变量
  • 作用:实现变量的私有化

function father () {
    var i = 0
    return function () {
        i++
        console.log(i);
    }
}

var fn = father()

fn()
fn()
fn()
  • 使用场景

    • 循环里面的异步代码打印索引值会有bug,用闭包可以解决(不用说)

    • 防抖和节流

    • 柯里化

      • 柯里化是用来把一个函数从多参函数转换成单参函数,好处就是可以实现参数复用
  • 缺点 会导致内存泄露

  • 解决办法:闭包用完 赋值为null