【JS】立即执行函数IIFE 和闭包到底是什么关系?

news2024/11/26 0:54:40

历史小剧场

”我希望认您作父亲,但又怕您觉得我年纪大,不愿意,索性让我的儿子给您作孙子吧!“ ----《明朝那些事儿》

什么是立即执行函数?

特点:

  • 声明一个匿名函数
  • 马上调用这个匿名函数
  • 销毁这个匿名函数
(function () {
    console.log("I'm a closure!")
})()

等同于

function fn() {
    console.log("I'm a function!")
}
fn()

立即执行函数作用

  • 简化代码,不用先封装再调用,不用起函数名
  • 有函数作用域,可以隔离变量

和闭包结合

  • 立即执行函数的执行会立即执行函数体,而函数体中包含的闭包会在立即执行函数执行完毕后执行
  • 立即函数可以让闭包的实现少写一些代码
// 不用立即函数
function sayName() {
    const name = 'Tom'
    return function() {
        console.log(name)
    }
}
const say = sayName()
say() // output: Tom

// 用立即函数
const sayIIFE = (function() {
    const name = 'Tom'
    return function() {
        console.log(name)
    }
})()
sayIIFE() // output: Tom

在这里插入图片描述
在这里插入图片描述

用不用立即执行函数,都可以实现闭包,把变量 name 藏起来,全局访问不到

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1805810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

湖南(品牌控价)源点调研 手机价格管理对品牌的影响分析

前言:手机自发明以来,过去一直是国际品牌占主导地位,从最初的爱立信、摩托罗拉,到后来的诺基亚、三星,苹果在这个手机行业里,竞争激励,没有百年企业,每个品牌的盛衰都有背后的历史背…

transformer中对于QKV的个人理解

目录 1、向量点乘 2、相似度计算举例 3、QKV分析 4、整体流程 (1) 首先从词向量到Q、K、V (2) 计算Q*(K的转置),并归一化之后进行softmax (3) 使用刚得到的权重矩阵,与V相乘,计算加权求和。 5、多头注意力 上面…

VMware Fusion 如何增加linux硬盘空间并成功挂载

文章目录 0. 前言1. 增加硬盘空间2. 硬盘分区2.1 查看硬盘2.2 分区2.3 格式化2.4 挂载 3. 参考 0. 前言 如果发现虚拟机分配的硬盘不足,需要增加硬盘空间。本文教给大家如何增加硬盘空间并成功挂载。 查看当前硬盘使用情况: df -h可以看到&#xff0c…

使用 GPT-4 创作高考作文 2024年

使用 GPT-4 创作高考作文 2024年 使用 GPT-4 创作高考作文:技术博客指南 🤔✨摘要引言正文内容(详细介绍) 📚💡什么是 GPT-4?高考作文题目分析 ✍️🧐新课标I卷 人类智慧的进步&…

二次规划问题(Quadratic Programming, QP)原理例子

二次规划(Quadratic Programming, QP) 二次规划(Quadratic Programming, QP)是优化问题中的一个重要类别,它涉及目标函数为二次函数并且线性约束条件的优化问题。二次规划在控制系统、金融优化、机器学习等领域有广泛应用。下面详细介绍二次规划问题的原理和求解过程 二…

k8s学习--kubernetes服务自动伸缩之垂直伸缩(资源伸缩)VPA详细解释与安装

文章目录 前言VPA简介简单理解详细解释VPA的优缺点优点1.自动化资源管理2.资源优化3.性能和稳定性提升5.成本节约6.集成性和灵活性 缺点1.Pod 重启影响可用性2.与 HPA 冲突3.资源监控和推荐滞后:4.实现复杂度: 核心概念Resource Requests 和 Limits自动调…

多曝光融合算法(三)cv2.createAlignMTB()多曝光图像融合的像素匹配问题

文章目录 1.cv2.createAlignMTB() 主要是计算2张图像的位移,假设位移移动不大2.多曝光图像的aline算法:median thresold bitmap原理讲解3.图像拼接算法stitch4.多曝光融合工具箱 1.cv2.createAlignMTB() 主要是计算2张图像的位移,假设位移移动…

开发做前端好还是后端好?

目录 一、引言 二、两者的对比分析 技能要求和专业知识: 职责和工作内容: 项目类型和应用领域: 就业前景和市场需求: 三、技能转换和跨领域工作 评估当前技能: 确定目标领域: 掌握相关框架和库&a…

端午节大家都放假了吗

端午节作为中国四大传统节日之一,具有深厚的文化内涵和广泛的群众基础,因此,在这个节日里发布软文,可以围绕其传统习俗、美食文化、家庭团聚等方面展开,以吸引读者的兴趣。 首先,可以从端午节的起源和传统习…

轴承接触角和受力分析

提示:轴承接触角和受力分析 文章目录 1,接触角2,轴承受力分析 1,接触角 所谓公称接触角就是指轴承在正常状态下, 滚动体和内圈及外圈沟道接触点的法线与轴心线的垂直平面之间的夹角。 按滚动轴承工作时所能承受载荷的…

倩女幽魂手游攻略:云手机自动搬砖辅助教程!

《倩女幽魂》手游自问世以来一直备受玩家喜爱,其精美画面和丰富的游戏内容让人沉迷其中。而如今,借助VMOS云手机,玩家可以更轻松地进行搬砖,提升游戏体验。 一、准备工作 下载VMOS云手机: 在PC端或移动端下载并安装VM…

Spring 自动配置 condition

目录 前言 1. 自定义condition加载bean 1.1. 自定义一个condition注解 1.2. 实现自定义注解对应的实现类 1.3. 使用如上注解 1.4. 使用Spring上下文获取一下改bean 2. 我们来看看Spring是如何加载redisTemplate的。 2.1. 找到Spring的autoconfigure的jar包,我们…

C/C++学习笔记 CMake 与 Make有什么区别?

一、什么是编译? 编译器是一种将源代码翻译成机器码的程序。代码的编译包括几个步骤,包括预处理、编译和链接,以创建可在其目标计算机上直接运行的库或可执行文件。 ​ 这个编译过程也称为构建过程,这是 CMake 和Make发挥…

hid报表描述符不同item含义及整体结构

参考 报表描述符一般是两个字节同时出现 databtagbtypebsize表示两个字节 data表示一个字节, btagbtypebsize表示一个字节,又因为报表描述符中的数据都是小位权在前, 例如:0x05,0x01表示的是usage page(1),表示的是usage page的…

【算法篇】求最长公共前缀JavaScript版本

题目描述 给你一个大小为 n 的字符串数组 strs &#xff0c;其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀&#xff0c;返回这个公共前缀。 数据范围&#xff1a; 数据范围:0<n<5000&#xff0c;0<len(strsi)< 5000 进阶:空间复杂度 O(1)&a…

Java基础教程 - 14 Maven项目

更好的阅读体验&#xff1a;点这里 &#xff08; www.doubibiji.com &#xff09; 14 Maven项目 Java 为什么那么强大&#xff0c;很大一部分原因是在实际的开发中&#xff0c;可以将别人开发的模块引入到我们自己的项目中&#xff0c;这样别人开发好了&#xff0c;我拿来就…

Android电量优化,让你的手机续航更持久

节能减排&#xff0c;从我做起。一款Android应用如果非常耗电&#xff0c;是一定会被主人嫌弃的。自从Android手机的主人用了你开发的app&#xff0c;一天下来&#xff0c;也没干啥事&#xff0c;电就没了。那么他就会想尽办法找出耗电量杀手&#xff0c;当他找出后&#xff0c…

把chatgpt当实习生,进行matlab gui程序编程

最近朋友有个项目需要整点matlab代码&#xff0c;无奈自己对matlab这种工科的软件完全是外行&#xff0c;无奈只有求助gpt这种AI助手了。大神们告诉我们&#xff0c;chatgpt等的助手已经是大学实习生水平啦&#xff0c;通过多轮指令交互就可以让他帮你完成工作啦&#xff01;所…

从《千脑智能》看大模型

千脑智能与大模型 千脑智能介绍 世界模型千脑智能理论——对大脑的全新理解旧大脑&#xff1a;演化的历史烙印新大脑&#xff1a;智慧的创新引擎新旧大脑的互动与争斗启示与借鉴 大脑对信息的处理和建模六根六尘六识 新脑&#xff1a;智能的创新中枢旧脑&#xff1a;生存的本能…

下决心!学点前端图形开发来提升自已

前端图形开发已成为Web开发绕不开的部分。提升自己前端图形开发能力&#xff0c;才能快点在岗位中突围。但一看到各大实战教程的学习路径就犯难了。 内容不少&#xff0c;感觉学到老也跳不出来啊。还是走回老路&#xff1f;搞个热门国外开源框架应付算了。 我简单通过对图形系…