闭包是什么,有什么特性,对页面有什么影响?

什么是闭包

  “官方”的解释:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函 数),因而这些变量也是该表达式的一部分。 在 Scala、Scheme、Common Lisp、Smalltalk、Groovy、 JavaScript、Ruby、 Python、Go、Lua、objective c、swift 以及Java(Java8及以上)等语言中都能找到对闭包不同 程度的支持。 通俗的讲就是函数a的内部函数b,被函数a外部的一个变量引用的时候,就创建了一个闭包。

闭包的特性:

  ①.封闭性:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外 界提供访问接口;

  ②.持久性:一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被调 用之后,闭包结构依然保存在;

对页面的影响:

  使用闭包会占有内存资源,过多的使用闭包会导致内存溢出等。

posted @ 2019-05-12 21:25  前端_小明  阅读(4219)  评论(0编辑  收藏  举报