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

什么是闭包

时间:2022-10-05 08:55:37浏览次数:40  
标签:闭包 function console 函数 ++ 什么 num

闭包

​ 闭包就是能访问到外部函数作用域中变量的函数。

什么时候使用?

​ 当我们需要隐藏一些不希望别人访问的内容时就可以使用闭包

构成闭包的条件

  1. 函数的嵌套
  2. 内部函数要引用外部函数中的变量
  3. 内部函数要作为返回值返回

举例

​ 若我们想定义一个函数,每次调用返回它已被调用的次数,简单的实现方法如下:

let num = 0

function fn() {
    num++
    console.log(num)
}

​ 但这样做会导致num的值很容易就被他人修改,这是我们不希望看到的,故可以用闭包来解决。

function fn() {
    let num = 0
    return () => {
        num++
        console.log(num)
    }
}

标签:闭包,function,console,函数,++,什么,num
From: https://www.cnblogs.com/liuyxcc/p/16755037.html

相关文章

  • 【笨方法学python】ex10 - 那是什么
    代码如下:点击查看代码#-*-coding:utf-8--*-#那是什么tabby_cat="\tI'mtabbedin."persian_cat="I'msplit\nonaline."Backslash_cat="I'm\\a\\ca......
  • 面试官:Redis 过期删除策略和内存淘汰策略有什么区别?
    作者:小林coding​大家好,我是小林。Redis的「内存淘汰策略」和「过期删除策略」,很多小伙伴容易混淆,这两个机制虽然都是做删除的操作,但是触发的条件和使用的策略都是不同的。......
  • 2>&1到底是什么意思?
    java-jarsnapshot.jar>snapshot.log2>&1&写Java的朋友一定对上面的命令很熟悉,相信大部分人都知道​​>​​​表示的是重定向,那么什么是重定向?​​2>&1​​又是什么意......
  • 什么是虚拟计算机集群
    这个问题来自近期几位网友的私信,他们不约而同问到一个问题:什么是虚拟计算机集群?Laxcus分布式操作系统是如何做的?下面就正式回答一下这个问题。在我们传统的认知里......
  • 0633-6.2.0-什么是Apache Sentry
    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:​​https://github.com/fayson/cdhproject​​提示:代码块部分可......
  • 2022.10.4什么是计算机随笔
    什么是计算机冯诺依曼被称为计算机之父computer俗称电子计算机、电脑计算机分硬件和软件计算机广泛应用在人工智能、网络安全、科学计算、数据处理、自动......
  • vue为什么v-for的优先级比v-if的高?
    前言有时候有些面试中经常会问到v-for与v-if谁的优先级高,这里就通过分析源码去解答一下这个问题。下面的内容是在当我们谈及v-model,我们在讨论什么?的基础上分析的,所以阅......
  • Vue.$nextTick的原理是什么-vue面试进阶
    原理性的东西就会文字较多,请耐下心来,细细品味Vue中DOM更新机制当你气势汹汹地使用Vue大展宏图的时候,突然发现,咦,我明明对这个数据进行更改了,但是当我获取它的时候怎么是上......
  • Vue.$nextTick的原理是什么-vue面试进阶
    原理性的东西就会文字较多,请耐下心来,细细品味Vue中DOM更新机制当你气势汹汹地使用Vue大展宏图的时候,突然发现,咦,我明明对这个数据进行更改了,但是当我获取它的时候怎么是上......
  • vue为什么v-for的优先级比v-if的高?
    前言有时候有些面试中经常会问到v-for与v-if谁的优先级高,这里就通过分析源码去解答一下这个问题。下面的内容是在当我们谈及v-model,我们在讨论什么?的基础上分析的,所以......