回顾闭包

作者: 鹏禾呈 | 来源:发表于2018-03-16 12:24 被阅读0次

闭包是函数和声明该函数的词法环境的组合。MDN上做了很详细的说明:闭包
在这总结一下自己的理解

要理解闭包就要先了解js的词法作用域,词法作用域意味着作用域是由书写代码时函数声明的位置来决定的。当一个块或函数嵌套在另一个块或函数中时, 就发生了作用域的嵌套。 因此, 在当前作用域中无法找到某个变量时, 引擎就会在外层嵌套的作用域中继续查找, 直到找到该变量,或抵达最外层的作用域( 也就是全局作用域) 为止。

闭包的应用:

  • 将函数与其所操作的某些数据(环境)关联起来;即为Dom元素绑定回调函数;
  • 闭包模拟私有方法,即模块模式内,由于闭包的存在,声明的变量和方法只在该模式内部可用。但在返回对象上定义的变量和方法,则对外部使用者都是可用的。多个公共函数可共享一个词法作用域;
  • 因为多个闭包会共享同一词法作用域;在for循环中绑定事件的时候我们肯定不希望这样,可使用let声明变量或函数工厂或匿名闭包,,为每一个回调创建一个新的词法环境来解决。

相关文章

  • 回顾闭包

    闭包是函数和声明该函数的词法环境的组合。MDN上做了很详细的说明:闭包在这总结一下自己的理解 要理解闭包就要先了解...

  • JavaScript函数之闭包

    什么是闭包 闭包是JavaScript的难点,闭包产生的原因也是因为函数作用域的特性,函数作用域的内容可以回顾上一...

  • JS回顾-闭包02

    上一节讲了一些闭包的缺点,这节就讲一些闭包的优点吧,各有利弊,有句话说的好彼之砒霜,吾之蜜糖物无美恶,过则为灾 1...

  • JS回顾-闭包01

    时隔多天,我又准备更新我得文章了。 最近看了很多浏览器相关知识,就想系统的总结下学到的知识点。总结下最近看到知识点...

  • 2018-07-17——了解一下JS闭包

    今天心情还可以,回顾一下JS的闭包知识。掌握闭包,我个人觉得弄清楚以下几个问题就差不多了: 什么是闭包? 什么是J...

  • 每日一问18——swift基础(04)及后续补充

    swift中的闭包 闭包的定义 先回忆oc中的block语法,详细可以回顾每日一问01——block 而在swif...

  • swift-闭包

    闭包 闭包定义 闭包简化 - 尾随闭包 闭包参数 闭包返回值 闭包的循环引用

  • Javascript面向对象编程指南(五)——闭包

    闭包 在我们讨论闭包之前,最好先来回顾以下Javascript中作用域的概念,然后再进行某些话题拓展。 作用域链 ...

  • 闭包,闭包,闭包

    1、这家伙到底是什么? 网上关于这个的讨论的太多了太多了,有各种的举例子,但是大部分还在寻找这个答案的小伙伴对于变...

  • 闭包-Closures [swift 5.1]

    闭包的语法 尾随闭包 闭包逃离 自动闭包

网友评论

    本文标题:回顾闭包

    本文链接:https://www.haomeiwen.com/subject/fvmlqftx.html