首页 > 其他分享 >闭包的作用 理解

闭包的作用 理解

时间:2023-02-20 15:45:27浏览次数:25  
标签:闭包 泄漏 函数 数据类型 理解 内存 作用 引用

概念
闭包就是一个函数返回另一个函数;
作用
①保护

函数之间会形成一个不受外部干扰的私有作用域,适合模块开发使用(es6,common JS)

②保存

当一个函数返回另一个引用数据类型,当返回的引用数据类型被外界接收,就会形成一个不销毁的作用域,这样就会一直存在于堆内存(浏览器)中,很容易 (不是一定)造成内存泄漏 (浏览器无法回收代码的内存;object或者array); 

是不是所有闭包都会造成内存泄漏?
并不是,会不会内存泄漏,取决于其有没有被外界所接收;

如果一个函数类型返回一个引用数据类型

 

垃圾回收算法:就是垃圾收集器按照固定的时间间隔,周期性地寻找那些不再使用的变量,然后将其清楚或释放内存。
现在基本都是标记清除标记整理引用计数

 

如果不清楚就去看这个https://juejin.cn/post/7038593947995734030

 

标签:闭包,泄漏,函数,数据类型,理解,内存,作用,引用
From: https://www.cnblogs.com/lpq2022/p/17137636.html

相关文章

  • 【和chatGPT对话】考校一下关系型数据库,看看比赛的关系理解得怎么样
    前言和小结SQL生成是ChatGPT的技能之一,但是生成SQL需要理解语境和需求。在单表可以轻松过的情况下,复杂的对象及其关系如何处理呢?本文试图考校一下。通过N次对话,发现多......
  • git设置不提交指定文件-解决idea的.gitignore有时不起作用的问题
    有时候,.gitignore会对部分文件/文件夹失效,大概原因是由于新创建的文件已经出现在git本地仓库的缓存,所以.gitignore就失效了解决办法就是清空一下git仓库的缓存,重新提交一次......
  • springMVC中的ModelMap作用及用法
    概念ModelMap的作用:ModelMap对象主要用于传递控制方法传递数据到结果页面。类似于request的setAttribute方法的作用。所以我们要想在jsp页面获取数据,只要将数据放到ModelMa......
  • 前端:margin、padding、float一篇文章彻底理解
    系列文章目录文章目录​​系列文章目录​​​​margin——意思是边距​​​​margin的4个取值​​​​padding——意思是填充​​​​float——意思是浮动​​​​总......
  • html引入js文件加 defer ,defer 什么作用
    在HTML中引入JavaScript文件时,可以使用defer属性,该属性可以推迟(defer)脚本的执行,即等到整个HTML文档解析完毕后才执行脚本。使用defer属性可以避免在解析HTML......
  • 一句话解释闭包
    在JS中变量的作用域属于函数作用域,在函数执行完后,作用域就会被清理,内存也会随之被回收,但是由于闭包函数是建立在函数内部的子函数,由于其可访问上级作用域,即使上级函数执......
  • c++常用关键字作用
    一、const关键字1.修饰C++类的成员函数修饰成员函数的时候,该函数则不能修改类内的成员变量,若是成员变量则编译器会报错。此处注意mutable关键字就是为了突破这个限制,如......
  • react中类组件和函数组件的理解?有什么区别
    react中类组件和函数组件的理解?有什么区别一、类组件类组件,顾名思义,也就是通过使用ES6类的编写形式去编写组件,该类必须继承React.Component如果想要访问父组件传递过来......
  • Redux的理解?Redux的工作原理
    一、是什么React是用于构建用户界面的,帮助我们解决渲染DOM的过程而在整个应用中会存在很多个组件,每个组件的state是由自身进行管理,包括组件定义自身的state、组件之间的......
  • 《深入理解java虚拟机》第七章读书笔记——虚拟机类加载机制
    系列文章目录和关于我一丶虚拟机类加载机制是什么java虚拟机将描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可用被虚拟机直接使用的jav......