当前位置: 首页 > news >正文

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

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

>控制台数据显示效果:

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

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

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

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

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

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

http://www.lryc.cn/news/246123.html

相关文章:

  • 鸿蒙开发-ArkTS 语言-基础语法
  • GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF
  • 电子学会C/C++编程等级考试2022年03月(三级)真题解析
  • 理解 JUnit, JaCoCo 到 SonarQube 的过程及 Maven 配置
  • 人工智能关键技术决定机器人产业的前途
  • 2023华为ICT网络初赛试题回顾
  • Hands-on Machine Learning with Scikit-Learn,Keras TensorFlow
  • 242. 有效的字母异位词
  • TUP通信——与多个客户端同时通信
  • 基于helm的方式在k8s集群中部署gitlab - 备份恢复(二)
  • B树与B+树的对比
  • 关键路径-STL版/拓扑排序 关键路径【数据结构】
  • 最新AI创作系统ChatGPT系统运营源码,支持GPT-4图片对话能力,上传图片并识图理解对话,支持DALL-E3文生图
  • 小航助学题库蓝桥杯题库stem选拔赛(21年3月)(含题库教师学生账号)
  • [python]离线加载fetch_20newsgroups数据集
  • Python与设计模式--代理模式
  • ubuntu挂载磁盘,以及开机自动挂载磁盘
  • Jetpack Compose中适应性布局的新API
  • 小航助学题库蓝桥杯题库stem选拔赛(22年1月)(含题库教师学生账号)
  • 蓝桥杯第100 题 九宫幻方 DFS 全排列 C++ 解题思维
  • NOI / 1.10编程基础之简单排序 提问05:分数线划定 c语言 结构体
  • 再探Docker:从Docker基础到跨服务器部署
  • C# 使用PanGu分词
  • Termius 一款优秀的跨平台 SSH 客户端工具
  • 生命科学领域 - 新药从研发到上市全流程
  • 血的教训------入侵redis之利用python来破解redis密码
  • yolov8-pose 推理流程
  • 笔记十七、认识React的路由插件react-router-dom和基本使用
  • CleanMyMac X4.14.5Crack最新Mac电脑清理优化最佳应用
  • Linux shell单双引号区别