首页 > 其他分享 > 闭包有什么作用

闭包有什么作用

时间:2022-08-28 16:00:51浏览次数:35  
标签:闭包 缓存 函数 对象 什么 var 作用 变量

(1)什么是闭包: 闭包是指有权访问另外一个函数作用域中的变量的函数。 闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会继续存在。闭包就是 就是函数的“堆栈”在函数返回后并不释放,我们也可以理解为这些函数堆栈并不在栈 上分配而是在堆上分配。当在一个函数内定义另外一个函数就会产生闭包。
(2)为什么要用: 匿名自执行函数:我们知道所有的变量,如果不加上 var 关键字,则默认的会添加到全 局对象的属性上去,这样的临时变量加入全局对象有很多坏处,比如:别的函数可能误 用这些变量;造成全局对象过于庞大,影响访问速度(因为变量的取值是需要从原型链 上遍历的)。除了每次使用变量都是用 var 关键字外,我们在实际情况下经常遇到这样一 种情况,即有的函数只需要执行一次,其内部变量无需维护,可以用闭包。 结果缓存:我们开发中会碰到很多情况,设想我们有一个处理过程很耗时的函数对象, 每次调用都会花费很长时间,那么我们就需要将计算出来的值存储起来,当调用这个函 数的时候,首先在缓存中查找,如果找不到,则进行计算,然后更新缓存并返回值,如 果找到了,直接返回查找到的值即可。闭包正是可以做到这一点,因为它不会释放外部 的引用,从而函数内部的值可以得以保留。 封装:实现类和继承等

标签:闭包,缓存,函数,对象,什么,var,作用,变量
From: https://www.cnblogs.com/jycom/p/16632928.html

相关文章

  • 十万个为什么
    get/post区别resltfull风格主要是做了对浏览器请求的过滤。做了对地址栏数据的参数替换为""https://www.cnblogs.com/murmansk/p/11469752.html错误码100到5xxhtt......
  • 一文搞懂什么是缓存穿透、缓存击穿、缓存雪崩!
    什么是缓存穿透、缓存击穿、缓存雪崩?面试的时候关于Redis问得最多的问题,可能就是:请你简单说说什么是缓存穿透、缓存击穿、缓存雪崩?由于这三种说法的名字很相近,很多同学经......
  • 什么是 MyBatis?
    1.MyBatis是一款优秀的持久层框架2.它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简......
  • 为什么需要 Cookie 和 Session,他们有什么关联?
    为什么需要Cookie和Session说起来为什么需要Cookie,这就需要从浏览器开始说起,我们都知道浏览器是没有状态的(HTTP协议无状态),这意味着浏览器并不知道是张三还是李四......
  • javascript脚本应该写在代码的什么地方
    javascript脚本应该写在代码的什么地方_百度知道 https://zhidao.baidu.com/question/981893155394447739.htmlcmvibahy2013-10-10 · TA获得超过4116个赞关注 ......
  • 函数的作用
    以下选项中,属于函数的作用的是(BCD)A.提高代码执行速度B.复用代码C.增强代码可读性D.降低编程复杂度答案解析:函数的作用是复用代码、增强代码可读性、降低编程复杂度,而......
  • C++中的cout.setf(ios::fixed)是什么意思?
    问题描述:在阅读一段代码时,发现代码的最后一部分出现...cout.setf(ios::fixed);cout.setf(ios::showpoint);...解决:cout.setf()是通过设置格式标志来控制cout输出格......
  • R语言中any运算符是什么意思
     R中any运算符用于判断逻辑向量中是否至少有一个是TRUE。001、any(c(FALSE,FALSE,FALSE))##用于判断逻辑向量中是否至少一个为TRUEany(c(FALSE,FALSE,TR......
  • vue组件中的data为什么是一个函数?
    为什么data为什么是一个函数而不是一个对象?原因是因为如果data是一个对象的话,两个组件中设置的data都会引用同一个内存地址,而用函数的话,则会在每次引用的时候返回一个新的......
  • R语言中 %||%什么意思?
     001、%||%函数用于判断左侧变量是否为NULL,如果左侧为NULL,则返回右侧的变量;否则,返回左侧的变量 library(rlang)x=NULLy=10x%||%y##左侧变量x......