2024-05-09 06:26:25
闭包的理解:闭包就是能够读取其他函数内部变量的函数。
闭包是一种保护私有变量的机制,函数执行时形成私有作用域,保护私有变量不受外界影响。内部函数可以使用外部函数的参数和变量,函数和变量不会被垃圾回收机制回收。
闭包的价值在于可以作为函数对象或者匿名函数,对于类型系统而言这就意味着不仅要表示数据还要表示代码。支持闭包的多数语言都将函数作为第一级对象,就是说这些函数可以存储到变量中、作为参数传递给其他函数,最重要的是能够被函数动态地创建和返回。
作用是:匿名自执行函数:我们知道所有的变量,如果不加上var关键字,则默认的会添加到全局对象的属性上去,这样的临时变量加入全局对象有很多坏处,如:别的函数可能误用这些变量;造成全局对象过于庞大,影响访问速度(因为变量的取值是需要从原型链上遍历的)。
闭包对页面的影响:
1、防止全局污染。
2、内部的函数可以用外部的变量或参数。
3、内部的变量不会被垃圾回收机制回收。
4、闭包可以更新外部的变量的值。
5、用闭包可以模拟私有方法。
6、由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成页面性能的问题;闭包和全局变量一样,如果大量使用可能会造成内存泄漏。