闭包是一个能够访问其他函数作用域的函数。

很显然这样的定义晦涩难懂,很多人都很难理解闭包的真正含义
那么我们就用通俗一点的语言来解析一下什么是闭包
我在知乎上看到一个比较有意思的回答:


由此我们可以通俗的理解为:

函数A的内部函数B,被函数A外部的一个变量引用时,就会形成一个闭包。

我们最常用到闭包的情况就是函数封装

展示一下我在实际项目中遇到闭包的应用场景:


我们需要调用这个getFeedbackList方法的时候,只需要formFeedbackServics.getFeedbackList()就好啦

闭包的两个用处是:
1.可以访问函数内部的变量
2.让这些变量的值一直保存在内存中(同样也正是因为这个特点会导致内存泄漏

解决内存泄漏的方式是:
将那些不需要的变量和那些垃圾回收收不走的变量赋值为null,让垃圾回收回收走

谈谈我对js中闭包的理解相关推荐

  1. 【转载】谈谈我对Java中CallBack的理解

    谈谈我对Java中CallBack的理解 转载自: http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html CallB ...

  2. JS中setter/getter理解

    JS中setter/getter理解 JS对象属性 get/set和getter/setter 数据属性 Object.defineProperty() 访问器属性 getter/setter创建及删 ...

  3. 离散数学,Js 中闭包的解释和联系

    总共分三部分说明闭包问题: (1)部分  转发自: https://blog.csdn.net/wzwdcld/article/details/44783459,如侵权,请告知删除. 二元关系  设S ...

  4. 线程中这么调用类_「手撕面试官」谈谈你对JDK中Executor的理解?

    欢迎关注头条号:Java小野猫 前言 随着当今处理器计算能力愈发强大,可用的核心数量越来越多,各个应用对其实现更高吞吐量的需求的不断增长,多线程 API 变得非常流行.在此背景下,Java自JDK1. ...

  5. Javascript基础进阶(十六)JS中面向对象的理解、继承、封装、多态

    小编推荐:Fundebug提供JS错误监控.微信小程序错误监控.微信小游戏错误监控,Node.j错误监控和Java错误监控.真的是一个很好用的错误监控费服务,众多大佬公司都在使用. 面向对象编程OOP ...

  6. js中this的理解

    平常用this很多,对this的理解就是this是对应执行环境,然而很多时候效果并不是想要的,最近看了一些谈到this的笔记和书籍,总结下. 对this的误解: this是指向函数本身 先上个demo ...

  7. Golang中闭包的理解

    简介 参考博客: https://www.calhoun.io/what-is-a-closure/ https://blog.cloudflare.com/a-go-gotcha-when-clos ...

  8. js中闭包函数的调用方法

    function fn() {let num = 10 // 只能在函数里面使用,外面看不到---- 数据私有化console.log('外');return function g() {num++c ...

  9. 谈谈我对Java中CallBack的理解

    CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了."回调函数"或者" ...

最新文章

  1. Java ResultSet如何检查是否有任何结果
  2. 【vuejs小项目】一、脚手架搭建工作
  3. (iOS)sqlcipher和FMDB的使用总结(原创)
  4. XML文档类型定义DTD
  5. Java springcloud B2B2C o2o多用户商城 springcloud架构 (十七)上传文件
  6. mvc调用mysql存储过程_mysql – 存储过程不在MVC5中返回值
  7. string.Split(params char[])”最匹配的重载方法具有一些无效参数
  8. 谷歌微软高通反对英伟达收购ARM 值得国人深思
  9. WPF中的动画——(三)时间线(TimeLine)
  10. xcode_8正式版安装遇到的小问题
  11. java webengine_webview – JavaFX 8 WebEngine:如何从java到console.log()从java到System.out?
  12. 【深度优先搜索】网格类问题:牛客网:机器人的运动范围
  13. 【游戏引擎Easy2D】学C++还在面对黑框框?那是你没看这篇文,游戏引擎教会你
  14. npz文件转为npy_numpy文件存取-npz,npy
  15. startx 命令_通过startx从命令行启动KDE
  16. UITT不忘初心,为交易而生
  17. Windows 10 企业版许可证即将过期怎么办
  18. C++常见问题总结_构造函数与析构函数
  19. DjangoUeditor添加与配置
  20. 计算机学院篮球队英文名称,【体育文化节】计算机学院研究生代表队获得篮球联赛冠军...

热门文章

  1. 使用C语言查看一个文件夹中所有文件及目录
  2. LINUX ltrace命令-用来跟踪进程调用库函数的情况学习
  3. python扫盲系列--(4)
  4. spark之13:提交应用的方法(spark-submit)
  5. mysql日期处理的一些实现
  6. SLF4J和log4j的整合使用
  7. Redis中对ZSet类型的操作命令
  8. mysql 分库分表架构与方案
  9. linux图机界面机制
  10. 阿里云中间件团队首次解密企业级分布式应用服务EDAS