JavaScript — 闭包、闭包的作用、生命周期、自定义JS模块

本文详细探讨了JavaScript中的闭包,包括它的产生、定义、条件、常见示例,以及闭包在自定义JS模块中的应用。闭包能够延长局部变量的生命周期,允许外部操作内部数据,但过度使用可能导致内存泄漏。了解闭包的优缺点有助于更好地利用这一特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、理解闭包

1.如何产生闭包? 

2.闭包到底是什么?

3.产生闭包的条件?

4.常见的闭包

二、闭包的作用

三、闭包的生命周期

四、闭包的应用——自定义JS模块

五、闭包的缺点及解决

1.缺点

2.解决


一、理解闭包

1.如何产生闭包? 

当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量(函数)时,就产生了闭包

2.闭包到底是什么?

*使用chrome调试查看

*理解一:闭包是嵌套的内部函数(绝大部分人)

*理解二:包含被引用变量(函数)的对象(极少数人)

*注意:闭包存在于嵌套的内部函数中

 

3.产生闭包的条件?

*函数嵌套

*内部函数引用了外部函数的数据(变量/函数)

    function fn1(){
        var a = 1;
        function fn2(){//执行函数定义就会产生闭包
            console.log(a);
        }
        fn2()
    }
    fn1()

4.常见的闭包

    1.将函数作为另一个函数的返回值

    function fn1(){
        let a = 1;
        function fn2(){
            a++;
            console.log(a);
        }
        return fn2
    }
    let f = fn1()
    f();    //2
    f();    //3

    2.将函数作为实参传递给另一个函数调用

    function showDelay(msg,time){
        setTimeout(function(){
            alert(msg)
        },time)
    }
    showDelay("Hello",2000)

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值