闭包函数

93 阅读1分钟

函数套函数--->作用域嵌套 在内部作用域调用外部的作用域

垃圾回收机制特点函数调用完回收,那么函数在被使用中不会被回收

当正常的函数在调用时立即执行,当执行完函数生命周期结束并销毁(垃圾回收机制),闭包利用垃圾回收机制(函数在被使用中不会被回收)的特点,能够让函数执行完毕时函数内部的空间保留。但会导致内存泄漏。

  • 闭包的主要作用: 延伸了变量的作用范围,比如可以让全局作用域去访问函数内部定义的局部变量,变量的销毁时机还受内部函数影响。

  • 应用场景:

    • 函数防抖
    • 函数节流
    • 变量持久化(闭包中的变量不会被回收)
    • 计数器
function fn1() {
    let a = 100
    return function() {
        return a
    }
}

fn1()  闭包:当调用完成时会被垃圾回收机制回收,但是a在内部函数中在使用那么垃圾回收机制不会回收




--------------------------------------------------


计时器:闭包使用场景

function count() {
    let num = 0
    return function() {
        return num++
    }
}