美文网首页
闭包的形成,弊端

闭包的形成,弊端

作者: 冷r | 来源:发表于2019-09-23 20:57 被阅读0次

闭包的形成与变量的作用域以及变量的生存周期有密切的关系
关于变量及变量声明周期 链接

闭包的形成

Javascript允许使用内部函数,可以将函数定义和函数表达式放在另一个函数的函数体 内。而且,内部函数可以访问它所在的外部函数声明的局部变量、参数以及声明的其 他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会 形成闭包。常见的闭包写法就是简单的函数套函数,通过另一个函数访问这个函数的 局部变量,利用闭包可以突破作用域链,将函数内部的变量和方法传递到外部,延续变 量的生命。使用闭包可以减少全局环境的污染,也可用延续变量的生命。

闭包的适用场景

  1. 减少全局环境的污染生成独立的运行环境
    模块化就是利用这个特点对不同的模块都有自己独立的运行环境,不会和全局冲突, 模块和模块之间通过抛出的接口进行依赖使用 以及像我们常用的jquery类库(避免和全局冲突使用闭包实现自己独立的环境)
  2. 可以通过返回其他函数的方式突破作用域链
    可以利用这个功能做一些值的缓存工作,例如常见的设计模式(单例模式),以及现 在比较火的框架vue中的计算属性
其实当遇到以下场景的时候都可以使用闭包
  1. 维护函数内的变量安全,避免全局变量的污染。
  2. 维持一个变量不被回收。
  3. 封装模块

闭包的缺点

由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大。所以在闭包不用之 后,将不使用的局部变量删除,使其被回收。在IE中可能导致内存泄露,即无法回收 驻留在内存中的元素,这时候需要手动释放。

相关文章

  • 闭包的形成,弊端

    闭包的形成与变量的作用域以及变量的生存周期有密切的关系关于变量及变量声明周期 链接 闭包的形成 Javascrip...

  • 函数的闭包

    闭包 函数内部的函数会形成闭包闭包里面使用局部变量和函数参数的时候,用的就是外部函数的局部变量。弊端:闭包会导致...

  • JS-闭包

    一、闭包简介1、函数内部的函数可以生成闭包2、闭包的应用:需要多个内部变量值3、闭包弊端闭包:会倒致函数运行结束后...

  • 闭包

    闭包 什么是闭包 一个函数可以访问另一个函数内部的变量就会形成闭包 闭包形成的条件 函数嵌套 函数引用了外部函数中...

  • 闭包与this指向

    1. 闭包 1.1 闭包的形成条件: 1.2 作用:变相的外面使用里面的变量 1.3 闭包的优点也是缺点:...

  • 面试题 闭包 继承 原型

    闭包 什么是闭包?闭包的作用?闭包的应用?答: 函数执行,形成私有的执行上下文,使内部私有变量不受外界干扰,起到保...

  • JS学习理解之闭包和高阶函数

    一、闭包 对于 JavaScript 程序员来说,闭包(closure)是一个难懂又必须征服的概念。闭包的形成与变...

  • 闭包(closure)

    闭包是函数和声明该函数的词法环境的组合。MDN MDN上的栗子 JavaScript中的函数会形成闭包。 闭包是由...

  • 闭包,原型链,继承,AJAX请求步骤等javaScript基础

    1.关于闭包 什么是闭包? 闭包是有权限访问其它函数作用域内的变量的一个函数。闭包概念:形成一个[不被销毁]的[私...

  • js闭包

    闭包 当内部函数被返回到外部并保存时,一定会形成闭包,闭包会产生原来的作用域链不释放,过度的闭包可能会导致内存...

网友评论

      本文标题:闭包的形成,弊端

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