闭包
闭包就是能够读取其他函数的内部变量的函数
也就是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方法就是在一个函数内创建另一个函数,通过另一个函数,访问这个函数的局部变量,利用闭包,可以突破作用链。
闭包的特性
函数内再嵌套函数
内部函数可以引用外层的参数和变量
参数和变量是不会被垃圾回收机制回收
对于闭包的理解
使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存的使用量,使用不当的话,很容易造成内存泄漏。在JS中,函数即闭包,只有函数才会产生作用域的概念。
闭包的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量始终保存在内存中
闭包的另一个用处就是,封装对象的私有属性和私有方法。
好处 能够实现封装和缓存等。
坏处 就是消耗内存,不正当的使用会造成内存溢出
使用闭包的注意点
由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则就会造成网页的性能问题,在IE中可能导致内存泄漏,解决方法就是在退出函数之前,将不使用的局部变量全部删除。