首页 > 其他分享 >什么是闭包?闭包详解

什么是闭包?闭包详解

时间:2022-10-21 23:46:16浏览次数:50  
标签:闭包 返回 函数 deal 什么 详解 内存 变量

    首先要知道JavaScript是使用垃圾回收的语言,它会每隔一段时间就会释放内存进行闲置资源回收。像函数中的局部变量,函数执行时在内部使用了变量,栈内存会分配空间以保存相应的值。在函数使用结束后,这个局部变量就不需要了,占用的内存就会被释放。

那我们若是想要使这个变量不被清理,一直处于被使用中,那就得让他一直被引用,那么我们可以在一个函数里面嵌入一个函数,小函数里面引用大函数里的变量,并把这个函数返回到全局中,此刻我们便可让它不被清理并在全局中使用它了

放代码:

 1 function big(){//大函数
 2     var savevar = 10;//数据
 3     function little(){//小函数
 4         return savevar;//引用大函数的数据,并把数据返回出去
 5     }
 6     return little;//把小函数返回出去
 7 }
 8 var deal = big();//调用大函数,返回出来小函数
 9 console.log(deal); // 返回的是little()这个小函数函数,如果要访问到num就需要调用这个函数
10 var money = deal(); //调用小函数,返回出来小函数里操作的值
11 console.log(money) // 10,输出

那平常使用闭包有什么好处呢?

优点:

  1. 作用域空间不销毁,所以变量也不会被销毁,增加了变量的声明周期
  2. 在函数外部可以访问函数内部的变量
  3. 护私有变量,将变量定义在函数内,不会污染全局

缺点:

  1. 因为函数外部可以访问函数内部的变量,导致变量和内部的函数引用关系一直存在,内存不能销毁,会一直占用,使用量较大时会导致内存溢出

标签:闭包,返回,函数,deal,什么,详解,内存,变量
From: https://www.cnblogs.com/Jundd/p/16815099.html

相关文章

  • 请问Java语言是跨平台的吗?JVM是跨平台的吗?为什么?
    Java语言是跨平台的,JVM是不跨平台的。Java能跨平台正是以JVM不跨平台为代价的。Java的跨平台性由JVM实现,即JVM用于保证java的跨平台的特性。原理分析:JVM是在机器和编译......
  • Docker 基础详解
     一、docker安装(ubuntu22.04)配置阿里源sudosed-i-r's#http://(archive|security).ubuntu.com#https://mirrors.aliyun.com#g'/etc/apt/sources.list&&sudoapt-......
  • python系列归并排序图文详解
    ​ 算法原理:      改归并排序将序列折半分成两个子序列,然后继续拆分,直到每个序列只有一个数据时,再将各个子序列排序后合并叠加。直到所有子序列都合并,排序完成。......
  • Docker基础:Docker是什么,为什么这么火
    一、Docker是什么?Docker是一个开源的应用容器引擎,它基于go语言开发,并遵从Apache2.0开源协议。使用Docker可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发......
  • 关于负数补码为什么原码是按位取反再+1
     8位下,求123和-123的补码。8位补码表示的值为-128-127。[-123]补码=[-01111011]补码=2^8+(-01111011)......
  • 闭包
    1.延长计算   ......
  • 什么是项目风险管理中的德尔菲法,什么又是所谓的四分点?
    对于德尔菲法大家都知道的差不多,但是往往很多培训课程提到四分位就一句话带过,讲的不明不白地,本文最后就讲一下四分位到底是什么。一、什么是德尔菲法德尔菲法是一种利用询问......
  • 详解编程语言之发展趋势
    近十年来,互联网发生了翻天覆地的变化。新的联网方式、新的通讯方式,乃至新的支付、交易方式深刻地影响了人们的生活,在浪潮的冲击之下,传统编程语言经受住了考验,并焕发了新的......
  • 手机浏览器电脑版有什么作用,手机浏览器如何设置成电脑版
    市面上的浏览器由于终端不同,分为手机浏览器和电脑浏览器。手机浏览器和电脑浏览器区别比较大,有的朋友习惯使用电脑浏览器,用不惯手机浏览器。这时候,我们可以将手机浏览器设......
  • SEO和SEM的区别是什么,哪个效果更好一些
    SEO指的是搜索引擎优化,SEM指的是搜索引擎影响,那么SEO和SEM的区别具体是什么?对于初创业的企业来说,哪个更好呢?下面,本文将介绍SEO和SEM的区别,帮助企业和公司网络人员理清这两者......