JS闭包的理解

1 篇文章 0 订阅

闭包是就是父函数中有子函数,子函数可以访问父函数的变量,父函数的变量的又是这子函数的一部分。

调用父函数,返回的是带有父函数内变量的子函数,直接上例子

 

<script>
    function parent() {
        var num = 0;//内部变量
        return function children(x) {//返回子函数
            var num2 = 0
            num2++//内部函数自有变量
            num++;//内部函数有引用,作为add函数的一部分了
            console.log('num='+num);
            console.log('num2='+num2);
            if(x==0){num=null}//传入参数清空变量
        };
    }
    var func1 = parent();//返回子函数
    func1();//执行的是子函数,um = 1,num2=1
    func1();//执行子函数,num是父函数内定义的变量也就是引用变量,在第一次调用后,num变成了1,所以,num = 2,num2=1
    //这个应用型变量很关键,也就是说num这个变量一直是存在的,如果应用不当会增加内存消耗
    var func2 = parent();
    func2(0);// num = 1,num2=1
    func2();// num = 1,num2=1
    console.log(func1===func2)//输出false,说明返回的是两个不同的函数
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值