闭包是什么?运用在那些地方?

闭包理解:

  • 闭包就是函数中的函数、里面的函数可以访问外面函数的变量、外面的变量是这个内部函数中的一部分。
  • 函数a中有一个函数b、函数b可以访问函数a中的变量或者数据、此时形成了闭包

闭包形成的条件:

  1. 函数嵌套
  2. 内部函数访问外部函数的变量
  3. 内部函数被外部引用

闭包作用:

  • 形成不被销毁的执行空间
  • 延长变量的生命周期
  • 可以实现js模块
  • 缺点:使用过多引起内存溢出

使用两个文件来说明闭包

index.html

<script type="text/javascript" src="myModule.js"></script>
<script type="text/javascript">
myModule2.doSomething()
myModule2.doOtherthing()
</script>

myModule.js

(function () { //自调用函数,特点:只执行一次 var msg = 'Beijing'//私有数据 //操作数据的函数 function doSomething() { console.log('doSomething() '+msg.toUpperCase()) }function doOtherthing () { console.log('doOtherthing() '+msg.toLowerCase()) }//向外暴露对象(给外部使用的两个方法) window.myModule2 = {doSomething: doSomething,doOtherthing: doOtherthing } })()

闭包的应用场景?

  1. 函数防抖
  2. 回调

闭包是什么?运用在那些地方?相关推荐

  1. 深入理解Python闭包概念

    闭包并不只是一个Python中的概念,在函数式编程语言中应用较为广泛.理解python中的闭包一方面是能够正确的使用闭包,另一方面可以好好体会和思考闭包的设计思想. 1.概念介绍 首先看一下维基上对闭 ...

  2. JavaScript闭包如何工作?

    您将如何向了解其闭包概念(例如函数,变量等)的人解释JavaScript闭包,但却不了解闭包本身? 我已经在Wikipedia上看到了Scheme示例 ,但是不幸的是它没有帮助. #1楼 我知道已经有 ...

  3. javascript闭包,你大爷永远是你大爷

    闭包 what 's the fuck 闭包,是什么鬼,谁学谁都脑进水! 我会用5W3H1TS的方式,去讲闭包 1. what 一个函数,记住自己定义时的"词法作用域",就产生了闭 ...

  4. Dart微基准测试第一部分

    在过去的几个月里,我开始收到越来越多关于某些特定 Dart 操作性能的问题.以下是Romain Rastel在他关于提高 Flutter中 ChangeNotifier 性能的工作的背景下提出的此类问 ...

  5. 前端面试题及答案(一)

    前端 一.对闭包的理解,以及哪些地方用过闭包,以及闭包的缺点 闭包 是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变 ...

  6. 【搜集】前端面试题总结

    [搜集]前端面试总结 CVTE面试(一面) 作者:灵活的死胖子 链接:https://www.nowcoder.com/discuss/88897?toCommentId=1514882 来源:牛客网 ...

  7. swift4.0语法杂记(精简版)

    小视频 001--swift简史小视频 002--Playground体验 003--常量&变量 一.swift简史 1.介绍 swift是苹果公司于2014年推出用于撰写OS和iOS应用程序 ...

  8. swift4.0语法杂记

    原文地址:https://www.jianshu.com/p/06b9ddf748f7 (如有侵权,请联系我删除.) 小视频 001--swift简史小视频 002--Playground体验 003 ...

  9. 详细介绍javascript中的单体模式singleton(全面)

    一.单体模式描述 1.单体模式是javascript中最基本但又最有用的模式之一,他可能比其他任何模式都常用. 2.这种模式提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码可以通过单一的 ...

  10. JavaScript 高级3 :函数进阶

    JavaScript 高级3 :函数进阶 Date: January 19, 2023 Text: 函数的定义和调用.this.严格模式.高阶函数.闭包.递归 目标: 能够说出函数的多种定义和调用方式 ...

最新文章

  1. python 柱状图 保存_我如何从数据库中存储直方图数据?
  2. information_schema中的所有表和视图
  3. 第十一天2017/04/25(1、二叉树)
  4. ant design中的栅格化系统
  5. python第七章_python 第七章 模块
  6. 猪八戒玉华王:老码农的7项灵魂思考
  7. Linux服务器编程 用SIGURG检测带外数据是否到达
  8. HDF5快速上手全攻略
  9. 阶段3 2.Spring_10.Spring中事务控制_5 spring事务控制的代码准备
  10. xampp apache windows10 同一局域网下他人访问本地项目
  11. Purftpd的详细安装配置
  12. 编程:中国有句俗话“三天打鱼两天晒网”,某人从1990年1月1日起三天打鱼两天晒网,编程计算他在某一天是打鱼还是晒网
  13. wxpython动态实时绘图_wxPython实现画图板
  14. 6款程序员必备的免费在线画图工具,贼好用!
  15. ASEMI代理AD9833BRMZ-REEL原装ADI车规级AD9833BRMZ-REEL
  16. ubuntu 10.10五笔、rar解压及gedit乱码问题的解决
  17. IntelliJ IDEA设置编码格式
  18. Python学习资料全面总结,真的对零基础很有用
  19. GPS时钟系统,GPS同步时钟系统
  20. 用Matlab解决数学问题

热门文章

  1. 阿里“中台”概念结合环保行业架构的思考
  2. Ubuntu18.04下的PCL安装(摸爬滚打)
  3. 有1亿个数字,其中有2个是重复的,快速找到它,时间和空间要最优
  4. 支付宝蚂蚁庄园线下支付链接,支付宝蚂蚁庄园线下支付地址
  5. 自媒体平台的创作方式有哪些?自媒体平台的选择方法
  6. 什么是Tomcat?用最简单的语言描述它
  7. PeekMessage与GetMessage区别
  8. 专题分纲目录 MEM/MBA数学基础
  9. Python 命名关键字形参
  10. 模块化多电平变换器载波移相与电容电压平衡控制MATLAB仿真