美文网首页
第五章 闭包

第五章 闭包

作者: Epat | 来源:发表于2020-08-26 16:58 被阅读0次

什么是闭包

image.png
  1. 只要一个函数不在他本身的词法作用域中运行,就是一个闭包
  2. 闭包也就是函数所在的词法作用域不会被销毁


    image.png

    为什么这里会说javascript引擎极有可能依然保留这个结构,而不是会保留这个结构呢,js是否是根据词法作用域来做垃圾回收,还是可以根据变量的引用来做垃圾回收呢?

闭包的作用

我觉得闭包最大的作用还是封装模块化,通过闭包的方式,让被封装在内部的变量,可以在外部访问。有点像java中的私有化变量,通过公开的函数来操作变量

// java 代码
public class A {
  private String name = 'xxx';
  public String getName () {
    return name;
  }

  public String setName (name) {
    this.name = name;
  }
}
A a = new A();
a.setName('xxxx');
a.getName();
// js 代码
function a() {
   var name = 'xxx'
   function getName () {
    return name;
   }
   function setName (newName) {
     name = newName
   }
   return {
     getName,
     setName
   }
}
var aHandler = a()
aHandler.setName('xxx')
aHandler.getName()

相关文章

  • JavaScript 忍者秘籍笔记——闭包

    第五章 闭包 闭包是如何工作的 闭包是一个函数的创建时允许该自身函数访问并操作该自身函数吱哇IDE变量时所创建的作...

  • 你不懂JS:作用域与闭包

    你不懂JS:作用域与闭包 第五章:作用域闭包 希望我们是带着对作用域工作方式的健全,坚实的理解来到这里的。 我们将...

  • swift-闭包

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

  • 闭包,闭包,闭包

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

  • 闭包-Closures [swift 5.1]

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

  • Day7 闭包(Closures)

    本页包含内容:• 闭包表达式• 尾随闭包• 值捕获• 闭包是引用类型• 逃逸闭包• 自动闭包 1、闭包表达式 闭包...

  • Python闭包

    闭包 = 环境变量 + 函数 调用闭包内部的环境变量 闭包的经典误区 闭包与非闭包实现人类走路 非闭包 闭包

  • 第五章 闭包

    什么是闭包 只要一个函数不在他本身的词法作用域中运行,就是一个闭包 闭包也就是函数所在的词法作用域不会被销毁ima...

  • 闭包(closure)

    ● 闭包基础 ● 闭包作用 ● 闭包经典例子 ● 闭包应用 ● 闭包缺点 ● 参考资料 1、闭包基础 作用域和作...

  • swift- 闭包一

    /*• 闭包表达式• 尾随闭包• 值捕获• 闭包是引用类型• 逃逸闭包• 自动闭包*/

网友评论

      本文标题:第五章 闭包

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