闭包的介绍

概念

     闭包是 函数 的一种 高级应用方式
     主要目的 就是 操作调用使用 函数中的数据

本质原因:

       为了数据的 安全性 也就是为了 防止全局变量污染
       将 全局变量 定义在 函数中 称为局部变量
       再 通过 闭包的语法形式 来操作调用使用 这个数据

闭包的核心代码

         有一个函数A 返回值是一个匿名函数
         在 函数A 之外 有变量 存储函数A的执行结果 
         也就是 返回的匿名函数
         匿名函数 来 操作调用执行 函数A 中 存储的数据

         最终调用使用变量 也就是 调用 匿名函数 也就是 操作 函数A中的数据 
// 有一个函数 存储变量 
        // 让全局变量称为函数的局部变量
        // 就不会被其他程序误操作,就不会全局变量污染
        function fun(){
            // 原始的全局 现在的局部变量
            let int = 100;  
            
            // 返回值是一个 匿名函数
            // 也就是 返回值是一个 引用数据类型
            // 函数的执行空间就会一直存在不会被销毁
            // 也就是 int变量 会一直存在
            return function(){
                // 函数程序就是对 变量的操作
                int *= 2;
                console.log( int );                
            }
        }

        // res 中 存储的是 return 的 匿名函数的内存地址
        const res = fun();
        // 调用 res 就是 在 调用 匿名函数
        // 就是 执行 匿名函数中的程序 就是在 操作 变量int
        res();


        function f(){
            int = '北京';
        }

        f();   //200

        console.log(int);   //北京

闭包的优点

        (1) 延长了变量的生存周期
            会占用内存空间

        (2) 有一个不会被销毁的执行空间
            容易造成数据泄露

        (3) 函数的执行空间一直存在
            影响程序的执行效率
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半生过往

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值