美文网首页
知识点整理之---闭包.为什么会有闭包,用途和特点以及优缺点

知识点整理之---闭包.为什么会有闭包,用途和特点以及优缺点

作者: 楠楠_c811 | 来源:发表于2019-05-27 16:51 被阅读0次

说起闭包,除了简单的什么是闭包,我们也需要问问自己为什么会有闭包,闭包是做什么用的,他有什么特点呢?他的出现解决了什么问题?它的优点缺点是什么呢?
不要觉得繁杂,这些都是不能只知其然的东西,你必须要了解所以然,才能让自己在前端道路上走的更远,否则局势一变,就会寸步难行。

什么是闭包?

闭包是有权访问另一个函数作用域中的变量的函数,实质上是将函数内部与外部连接起来的桥梁。

为什么会有闭包?

之所以出现闭包是因为JS的垃圾回收机制,JS 本身为了避免解释器过量消耗内存,造成系统崩溃, 自带有一套垃圾回收机制,垃圾回收机制能够检测到一个对象是不是无用的。检测到之后,就会把它占用的内存释放掉。但是实际工作中,我们也会需要一些变量不那么及时的被清理,所以就出现了闭包,用来达成这个效果。

闭包的特点是什么呢?

1、函数套函数;
2、内部函数有权访问外部函数的变量;
3、参数和变量不会被垃圾回收机制收回。

闭包的用途是什么?

1、可以读取内部函数的变量;
2、让这些变量的值始终保存在内存中,不会被调用后就被垃圾回收机制收回;
3、用来模块化代码(类块级作用域)。

创建闭包的常见方式是什么?

最常见的创建闭包的方式,就是在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量。利用闭包可以突破作用域链,将函数内部的变量传递到外部。

闭包的优缺点是什么?
优点:

1、可以将一个变量长期驻扎在内存中;
2、避免全局变量的污染;
3、私有成员的存在。

缺点:

1、会使函数的变量被保存在内存中,内存消耗极大,会造成网页性能问题,在IE中会导致内存泄漏。
解决办法:在退出函数之前,将不使用的局部变量设置为null。
2、闭包会在父函数外部,改变父函数内部变量的值,所以如果把父函数当做对象使用,会把闭包当做它的公用方法,把内部变量当做它的私有属性,所以使用时一定要小心,不要随便改变父函数内部变量的值。

 function F1(){
            let a = 100; 
            return function f2(){  // 闭包的特点:1. 函数套函数
                console.log(a)  // 2. 内部函数可以引用外部变量
            }
        }
        let f1 = F1();
        let a = 200 ;  // 重新定义变量来看看调用时走哪个
        f1();  // 100  函数调用时的变量是创建时候的变量而不是调用时的变量

相关文章

  • 知识点整理之---闭包.为什么会有闭包,用途和特点以及优缺点

    说起闭包,除了简单的什么是闭包,我们也需要问问自己为什么会有闭包,闭包是做什么用的,他有什么特点呢?他的出现解决了...

  • 闭包的理解

    闭包目的: 闭包三个特性: 闭包的用途: 闭包的优点: 闭包的缺点: 参考文献: https://zhuanlan...

  • 闭包函数

    1: 2:闭包的用途 3:闭包的缺点:

  • 作用域和闭包

    目录 概述 作用域编译过程词法作用域全局作用域函数作用域 闭包循环和闭包闭包的用途性能 总结 概述 作用域和闭包一...

  • Swift基础语法-闭包,闭包函数回调,尾随闭包,闭包捕获值,循

    本节知识点 闭包的基本概念 闭包基本使用 闭包表达式作为回调函数 闭包的多种写法(尾随闭包) 闭包表达式优化 闭包...

  • 前端常见问题总结

    什么是闭包?闭包的用途是什么?闭包的缺点是什么? 什么是闭包 闭包:内部函数总是可以访问其所在的外部函数中声明的参...

  • 如何理解和应用闭包

    何为闭包 函数内部又定义了一个函数,这个子函数就可以称为闭包。 闭包的特点 闭包的一个特点就是闭包内部可以引用外部...

  • python函数之闭包

    目录 python函数之闭包什么是闭包python中的namespace闭包的条件闭包的优点 python函数之闭...

  • Swift-闭包

    闭包的特点:一个函数有权访问另外一个函数内的变量和参数 闭包—匿名函数 结尾闭包 衍生 内容捕获 闭包和函数是引用类型

  • debounce防抖函数,throttle节流函数

    所需知识点 闭包 闭包的特点:(1) 函数内部可以引用外部的参数和变量(2) 参数和变量保存在内存中,不会被垃圾回...

网友评论

      本文标题:知识点整理之---闭包.为什么会有闭包,用途和特点以及优缺点

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