js闭包的必要条件及创建和消失(生命周期)

>创建闭包的必要条件:

1.函数嵌套

2.内部函数引用外部函数的变量

3.将内部函数作为返回值返回

>闭包是什么?

就是可以访问外部函数(作用域)中变量的内部函数

> 闭包是什么时候产生的?

- 当调用外部函数时,闭包就已经创建了

- 外部函数每调用一次就会产生一个闭包,

闭包和闭包之间是相互独立的

>闭包是怎么消失的?

- 直到内部函数被GC(垃圾回收)后才消失

function outer() {
      var n = 0;
      function inner() {
        n++;
        console.log('inner ->',n);
      }
      function inner2() {
        n++;
        console.log('inner2 ->',n)
      }
      // 将内部函数存储到一个对象中返回
      return {inner:inner,inner2:inner2};
    }
    var obj = outer();
    var obj2 = outer();
    console.log(obj); // 打印的是 {inner: ƒ inner(), inner2: ƒ inner2()}
    obj.inner();// 初次n++ 打印的是1
    obj.inner2();// 二次n++ 因为改变的是同一个变量 打印的是2

    // obj2是单独的函数调用,所以产生的闭包和obj之间是独立
    obj2.inner();// 初次n++ 打印的还是1
    obj2.inner2();// 二次n++ 因为改变的和obj2.inner()改变的是同一个变量 打印的是2
    
    console.log('outer',outer); // 打印的是 'outer',f outer(){}...
    var outer = null // 闭包消失
    console.log('outer',outer); // 打印的是 'outer',null

闭包在实际的项目中其实是无处不在的,可以算得上是前端工程师的必修课,在面试中也是会经常问到的,希望正在学习的小伙伴们可以熟练掌握。

>控制台数据显示效果:

欢迎关注我的原创文章:小伙伴们!我是一名热衷于前端开发的作者,致力于分享我的知识和经验,帮助其他学习前端的小伙伴们。在我的文章中,你将会找到大量关于前端开发的精彩内容。

学习前端技术是现代互联网时代中非常重要的一项技能。无论你是想成为一名专业的前端工程师,还是仅仅对前端开发感兴趣,我的文章将能为你提供宝贵的指导和知识。

在我的文章中,你将会学到如何使用HTML、CSS和JavaScript创建精美的网页。我将深入讲解每个语言的基础知识,并提供一些实用技巧和最佳实践。无论你是初学者还是有一定经验的开发者,我的文章都能够满足你的学习需求。

此外,我还会分享一些关于前端开发的最新动态和行业趋势。互联网技术在不断发展,新的框架和工具层出不穷。通过我的文章,你将会了解到最新的前端技术趋势,并了解如何应对这些变化。

我深知学习前端不易,因此我将尽力以简洁明了的方式解释复杂的概念,并提供一些易于理解的实例和案例。我希望我的文章能够帮助你更快地理解前端开发,并提升你的技能。

如果你想了解更多关于前端开发的内容,不妨关注我的原创文章。我会不定期更新,为你带来最新的前端技术和知识。感谢你的关注和支持,我们一起探讨交流技术共同进步,期待与你一同探索前端开发的奇妙世界!
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

买护眼台灯,中国10个家庭的书桌上7个用书客,这里面有你家吗?

经过疫情后,护眼灯赫然成为灯具中的最大占比,对儿童青少年和家长来说,护眼台灯更是书桌上必不可少的一员,成为了保护视力健康的一大帮手!但市场的激烈竞争,低价台灯质量堪忧;高价台灯溢价严重&a…

【C/PTA —— 12.指针1(课外实践)】

C/PTA —— 12.指针1(课外实践) 一.函数题6-1 删除字符串中数字字符6-2 找最大值及其下标6-3 求两数平方根之和6-4 求一组数中的最大值、最小值和平均值6-5 两个4位正整数的后两位互换6-6 判断回文字符串 二.程序题7-1 求矩阵每行元素的和 一.函数题 6-…

用Python分析了波周杰伦,还做了数据可视化

本案例中的歌词数据来自中文歌词数据库。 这个数据库提供了华语歌手的歌曲及歌词信息,数据以 JSON 格式存储。 为了尽量完整地呈现从原始数据到可视化的过程,接下来我们会先简单讲解数据的预处理过程,即如何将 JSON 数据转化为Excel 格式&a…

activate jrebel JRebel激活过程

1.下载反向代理 地址:https://pan.baidu.com/s/1wklvDtyrSBXE4I6lKCxXBg?pwdidos 下载完后双击运行 2.在idea中如下步骤点击:File ——> Setting... ——> JRebel ——> Activate now 填入Team URL 1.http://127.0.0.1:8888/uuid //这个…

chatglm3 vllm部署推理;api访问使用

用fastchat部署暂时有各种问题,参考:https://github.com/lm-sys/FastChat/pull/2622 本篇用vllm运行测试可以使用 1、vllm运行 python -m vllm.entrypoints.api_server --model /***/chatglm/chatglm3-6b/

汽车功能安全ISO26262

一、功能安全基本概念及功能安全管理 什么是功能安全 相关标准: 现状: 功能安全的目的和范围: 总体框架: 基本定义:

【刷题笔记】H指数||数组||二分查找的变体

H指数 1 题目描述 https://leetcode.cn/problems/h-index/ 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一…

招募引流模式是实体门店吸引顾客的一种有效策略

在如今激烈的市场竞争和庞大的客户需求中,应该采取什么样的方式来应对,才能找到自己的一席之地。招募引流模式是实体门店吸引顾客的一种有效策略,通常招募体验官或合作伙伴,让他们协助门店进行推广活动,达到增加客流量…

【代码】微电网两阶段鲁棒优化经济调度方法(完美复现)matlab-yalmip-cplex/gurobi

程序名称:两阶段鲁棒优化—微电网两阶段鲁棒优化经济调度方法_刘一欣 实现平台:matlab-yalmip-cplex/gurobi 简介:针对微电网内可再生能源和负荷的不确定性,建立了 min-max-min 结构的两阶段鲁棒优化模型,可得到最恶…

图解Redis适用场景

Redis以其速度而闻名。 1 业务数据缓存 1.1 通用数据缓存 string,int,list,map。Redis 最常见的用例是缓存对象以加速 Web 应用程序。 此用例中,Redis 将频繁请求的数据存储在内存。允许 Web 服务器快速返回频繁访问的数据。这…

selenium已知一个元素定位同级别的另一个元素

1.需求与实际情况 看下图来举例 (1)需求 想点击test22(即序号-第9行)这一行中右边的“复制”这一按钮 (2)实际情况 只能通过id或者class定位到文件名这一列的元素,而操作这一列的元素是不…

C++ : 友元(未完结)

不能从外部访问类的私有数据成员和方法,但这条规则不适用于友元类和友元函数。要声明友元 类或友元函数,可使用关键字 friend,通过让函数成为类的友元,可以赋予该函数与类的成员函数 同的访问权限。 生活中你的家有客厅 (Public)…

使用最小花费爬楼梯(力扣LeetCode)动态规划

使用最小花费爬楼梯 题目描述 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶…

第71讲:MySQL锁机制详解:表级锁、元数据锁和意向锁的全面解析与实践指南

MySQL中的表级锁 文章目录 MySQL中的表级锁1.MySQL中表级锁的概念2.表锁的概念以及基本使用2.1.表锁的分类以及概念2.2.表锁的使用语法2.3.表共享读锁的基本使用2.4.表独占写锁的基本使用 3.元数据锁的概念以及基本使用3.1.元数据锁的概念3.2.常见的SQL操作所对应的元数据锁3.3…

婴儿专用洗衣机哪个牌子比较好?好用迷你洗衣机品牌推荐

当婴儿的到来,确实会给家庭带来许多变化,就好比如对于宝宝相关衣物的清洗需求。对于新生儿及婴幼儿的衣服,一般都要给予特殊的照顾与清洗,以保证不含细菌及过敏原。尤其是刚刚出生的婴儿,这时候宝宝们的皮肤很是幼嫩。…

APP端-阻止ios 默认全屏模式显示

问题描述: ios 默认全屏模式显示&#xff0c;该加的参数都加了&#xff0c;但是还是会自动默认全屏模式 代码如下: <video autoPlay loop playsInline muted{true} poster{UPIPreload}><source src{"video/your.mp4"} /></video>于是乎跟我们的A…

机器人制作开源方案 | 网球自动拾取机

作者&#xff1a;柳文浩、李浩杰、苏伟男、贾思萌、张天芸 单位&#xff1a;西安外事学院 指导老师&#xff1a;胡宝权、陈小虎 1. 产品说明 1.1 设计目的 近年来&#xff0c;网球运动越来越受到老百姓的欢迎&#xff0c;各种规模的比赛层出不穷。然而由于网球运动极为激烈…

使用jenkins和tomcat创建并部署maven项目

准备三台服务器&#xff1a; 192.168.58.139 部署tomcat 详细参照&#xff1a;http://t.csdnimg.cn/Yp2z2 192.168.58.140 部署gitlab 详细参照&#xff1a;http://t.csdnimg.cn/Sb1uz 192.168.58.153 部署Jenkins 详细参照…

代码随想录训练营第30天 | 332.重新安排行程、51. N皇后、37. 解数独

332.重新安排行程 题目链接&#xff1a;重新安排行程 解法&#xff1a; 这个题&#xff0c;卡哥的思路会超时。辛辛苦苦看懂了卡哥的思路&#xff0c;结果超时了&#xff0c;直接崩溃。 看了leetcode官方的思路&#xff0c;非常简洁&#xff0c;但是里面的深意还是不太懂。 由…

excel对号怎么打

对号无论是老师批改作业&#xff0c;还是在标注某些数据的时候都会用到&#xff0c;但这个符号在键盘上是没有的&#xff0c;那么excel对号怎么打出来呢&#xff0c;其实只要使用插入符号功能就可以了。 excel对号怎么打&#xff1a; 第一步&#xff0c;选中想要打出对号的单…