美文网首页
什么是闭包,闭包的用途是什么?

什么是闭包,闭包的用途是什么?

作者: 饥人谷__冯国欣 | 来源:发表于2019-06-05 20:28 被阅读0次

什么是闭包?

闭包:如果一个函数使用了它范围外的变量,那么 这个函数+这个变量 就是闭包。

这函数 最后 输出的 是 'Mozilla'。 init()创建了 一个 name 和一个 函数名为 displayName()的函数。

displayName()是定义在 函数内部的函数,仅在该函数体可用。displayName() 内没有自己的局部变量,然而它可以访问到外部函数的变量,所以 displayName()可以使用父函数 init() 中声明的变量name 。但是,如果有同名变量name 在displayName() 中被定义,则会使用 displayName() 中定义的 name 。

闭包的用途

闭包可以用在许多地方,主要用途。

一是前面提到的 可以读取函数内部的变量,另一个就是让这些变量的值始终保存在内存中,不会在init()调用后被自动清除。

为什么会这样呢?原因在于init()是 displayName()的父函数,而displayName()赋给的全局变量,这导致displayName()始终在内存中,而displayName()的存在依赖于init(),因此init()也始终在内存中,不会在调用结束后,被垃圾回收机制回收。

不必要的闭包 只会徒增内存,可能会造成浏览器性能问题。解决方法是,在退出函数之前,将不使用的局部变量全部删除。另外,闭包在jQuery中的应用非常多。

闭包可以封装私有变量

我们可以把函数当作一个范围,函数内部的变量就是私有变量,在外部无法引用,但是我们可以通过闭包的特点来访问私有变量。

相关文章

  • 前端常见问题总结

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

  • 闭包、call-apply-bind 的用法 、HTTP状态码

    一、什么是闭包?闭包的用途是什么?闭包的缺点是什么? 答 :1、什么是闭包:如果一个函数用到了外部的变量,那么这个...

  • 闭包,call、apply、bind 的用法,HTTP 状态码

    什么是闭包?闭包的用途是什么?闭包的缺点是什么?• 闭包:如果一个函数用到了外部的变量,那么这个函数加这个变量就叫...

  • 闭包的理解

    什么是闭包,闭包的用途是什么? 闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部...

  • 闭包的总结

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

  • 什么是闭包?闭包的用途是什么?

    什么是闭包: 如果一个函数用到了它作用域外面的变量,那么这个变量和这个函数之间的环境就叫闭包。 闭包的用途有些什么...

  • 什么是闭包?闭包的用途是什么?

    闭包的概念: 闭包是指有权访问另一个函数作用域中的变量的函数。如以下代码: 在outside函数内部定义的函数in...

  • 什么是闭包,闭包的用途是什么?

    什么是闭包? 闭包:如果一个函数使用了它范围外的变量,那么 这个函数+这个变量 就是闭包。 这函数 最后 输出的 ...

  • 什么是闭包,闭包的用途是什么?

    闭包是由函数和函数内部能访问到的变量组成的,在js中函数内部可以直接读取全局变量,而当我们想要得到函数内局部变量的...

  • 闭包的理解

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

网友评论

      本文标题:什么是闭包,闭包的用途是什么?

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