美文网首页
什么是闭包,有哪些应用场景

什么是闭包,有哪些应用场景

作者: 9月的甜橙子 | 来源:发表于2021-09-23 16:21 被阅读0次

在javascript中,内部函数总是可以访问其所在外部函数中,声明的参数和变量,即使在其被返回(寿命终结)。
闭包是javascript中一个非常重要的特性,当前作用域总是能访问外部作用域中的变量。因为函数是javascript中唯一具有自身作用域的结构,因此闭包的创建依赖于函数。

1.访问函数内部的变量

2.防止函数内部的变量执行完城后,被销毁,使其一直保存在内存中。

每次调用其中一个计数器时,通过改变这个变量的值,会改变这个闭包的词法环境。然而在一个闭包内对变量的修改,不会影响到另外一个闭包中的变量。以这种方式使用闭包,提供了许多与面向对象编程相关的好处 —— 特别是数据隐藏和封装。

缺点:

如果不是某些特定任务需要使用闭包,在其它函数中创建函数是不明智的,因为闭包在处理速度和内存消耗方面对脚本性能具有负面影响。

闭包其实就是函数中的函数,当函数运行时被创建。当函数newLoad被执行时,Javascript引擎会创建一个newLoad函数执行上下文的作用域链(上下文的作用域链是由函数的作用域链来初始化的),这个作用域链包含了newLoad被执行时的活动对象(活动对象是在上下文被创建后创建的,它包含了函数运行期间的所有局部变量,参数及this等,此对象会被推入作用域链的前端,当运行期上下文被销毁,活动对象也随之销毁),同时引擎也会创建一个闭包,该闭包的作用域链也会引用newLoad的活动对象,当newLoad执行完时,虽然其执行上下文和活动对象都已经被释放,但是闭包还引用newLoad的活动对象

???
如果是get set函数,那么不会共享

refer to https://blog.csdn.net/lidatgb/article/details/7621744


如果本文对您有帮助,请给我点赞哦~ 谢谢~

相关文章

  • 什么是闭包,有哪些应用场景

    在javascript中,内部函数总是可以访问其所在外部函数中,声明的参数和变量,即使在其被返回(寿命终结)。闭包...

  • python之闭包

    1、什么是闭包? 2、闭包有什么用? 3、闭包的应用场景? 今天带着以上三个问题来学习闭包。 首先说明:闭包,并不...

  • 闭包1(基础)

    (什么是闭包?闭包的作用?闭包的缺陷?) (闭包的几种可能的应用场景) (闭包与内存泄漏,有关闭包的面试题) 推荐...

  • 前端必背知识点

    什么是闭包,为什么要用闭包,闭包会产生哪些影响。 原型。 继承 原生Ajax(必会),jsonp的原理,jsonp...

  • Swift学习- 语法2

    13、函数 14、闭包 应用场景:先看OC的实现 14、尾随闭包 不要求自己写,但是要看懂,Swift中有大量闭包...

  • 闭包应用场景

    1.使用闭包代替全局变量 2.函数外或在其他函数中访问某一函数内部的参数 3.在函数执行之前为要执行的函数提供具体...

  • 闭包是什么?使用场景有哪些?

    由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,闭包就是能够读取其他函数内部变量的函数。所...

  • 闭包的总结

    围绕:闭包是什么?闭包的用途有哪些?闭包的缺点是什么? 这三个问题来进行总结 一、何为闭包?如果一个函数用到了外部...

  • 队列

    1)列队是什么?2)队列的特点?3)队列的基本操作有哪些?4)队列已被应用的经典场景有哪些?应用场景? 一、队列是...

  • 微店前端面经

    一面(电面):1.介绍原型链2.介绍闭包。哪些场景下使用了闭包?3.使用过什么构建工具?为什么使用构建工具?4.前...

网友评论

      本文标题:什么是闭包,有哪些应用场景

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