首页 > 其他分享 > 闭包产生的条件:内部函数使用外部变量+外部函数被调用(满足)

闭包产生的条件:内部函数使用外部变量+外部函数被调用(满足)

时间:2023-11-13 15:23:15浏览次数:23  
标签:闭包 function 函数 外部 作用域 链式

下列关于闭包描述正确的是?()

A
闭包内变量执行后不会被清除

B
闭包不满足链式作用域结构

C
(Function(){})()理论上是一个闭包

D
闭包不耗内存,可以随意使用

正确答案:AC

可以用(function(){})()来构成闭包,而不是(function(){})()是闭包。这个要明确

直接写

(function(){
    var a =10;
    console.log(a)
})()

这叫立即执行函数,不是叫做闭包

但是有时候在for循环里面我们可以这样写,使用的是(function () {})() 这个形式产生闭包

for(var i=0; i<10; i++){
    (function(j){
        setTimeout(function(){
           console.log(j);
        },1000)
    })(i)  
} 

链式作用域是js本身自然存在的一种获取变量的方式。链式作用域外部可以访问内部,内部访问外部需要设置一个函数,由此产生闭包。

立即执行函数(IIFE)不是一种闭包,它只是函数的一种调用方式,和闭包没有必然的联系,两者经常结合着一起使用,但两者的本质并不同

标签:闭包,function,函数,外部,作用域,链式
From: https://www.cnblogs.com/longmo666/p/17829228.html

相关文章

  • if函数
    if的用法#include<stdio.h>intmain(){ floata;a=(a<=100&&a>=0);     这部分对a重新赋值,赋值的就是一个运算结果,为了不影响下面输入的数字只能将这步写在floata之后printf之前才不会影响到输入值 printf("请输入a:"); scanf("%f",&a); if(a<=100&&a>=90)printf......
  • 虚幻5启动外部进程并获取所有输出的方法
    1intLaunchExternalProcess(constFString&InExecutablePath,constFString&InCommandArgument)2{3constboolbLaunchDetached=false;4constboolbLaunchHidden=true;5constboolbLaunchReallyHidden=true;67intRe......
  • String.fromCharCode 函数如何在 html 输入字段中用于移动键盘
    String.fromCharCode函数用于将Unicode编码转换为对应的字符。在HTML输入字段中,您可以使用JavaScript和String.fromCharCode函数来移动键盘。以下是一个简单的示例:首先,创建一个HTML文件,包含一个输入框和一个按钮:<!DOCTYPEhtml><htmllang="en"><head><metacharse......
  • 深度学习之交叉熵损失函数(在分类问题如图像识别时可以考虑)
    1. 熵2. 交叉熵损失函数交叉熵能够衡量两个分布的异同程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。二分类交叉熵:X = [[0.3, 0.7], [0.2,0.8]]Y = [1,0]Loss = -1/2(1*log0.7 + 1*log0.2)x代表样本等于下面的i......
  • (十三)C#编程基础复习——函数/方法详解
    C#中的函数(也可以称为方法)是一段具有签名(由函数名、参数类型和参数修饰符组成的函数信息)的代码块,可以用来实现特定的功能。一般情况下一个函数由以下几个部分组成:访问权限修饰符:用于指定函数对一个类的可见性;(public  公开的,公共的,同一程序集的其他任何代码或引用该程序集的其......
  • 不会这5个Excel函数,别说你会做数据分析?
    当涉及数据分析时,Excel是一个非常有用的工具,而掌握一些核心函数将大大提高你在数据处理和分析方面的能力。以下是我对五个重要的Excel函数的详细介绍:1.VLOOKUP函数VLOOKUP函数是Excel中最常用的查找函数之一。它允许你在一个范围内搜索特定的数值,并返回该数值所在行的其他......
  • 14构造函数
    构造函数目标能够用构造函数创建对象构造函数一个特殊的函数,主要用来初始化对象在技术上是常规函数 不过有两个约定1.大写字母开头2.用new创建实例functionPig(uanme,age){this.uname=unamethis.age=age} newPig('佩奇',6)constobj=newObject()说明......
  • kotlin 内联函数 inline
    一、当函数被声明为内联函数(函数的前缀增加inline),那么函数体会被直接替换到函数被声明的地方,而不是被正常的调用。如下的代码inlinefunsynchronized(lock:Lock,action:()->Unit){lock.lock()try{returnaction()}finally{lock.unlo......
  • excel对比两个文档,判断范围内的取值是否在另一个列表内存在(vlookup函数的使用)
    背景:sheet1表为原始数据:sheet2表为新的数据副本,目标是查询sheet2列表中是否存在sheet1表的数据,并且标记出来,且获取sheet2列表的一些数据至sheet1列表中,补充D与E两列的数据情况: 一、vlookup函数介绍:作用:垂直查找(按列号查找)函数说明:vlookup(lookup_value,table_array,col_......
  • 31.random.choice()函数
    生成电脑的随机选择:使用random.choice函数从一组选项中随机选择电脑的出拳选项,将选择存储在另一个变量中print('猜拳游戏开始:')player=input('请出拳(石头/剪刀/布):\n')computer=random.choice(['石头','剪刀','布'])print(f'电脑出拳:{computer}')ifplayer==compu......