闭包的理解

是这样的,想请分析下,闭包的理解
最新回答
恭候春夏的轮替

2024-05-09 06:26:25

闭包的理解:闭包就是能够读取其他函数内部变量的函数。

闭包是一种保护私有变量的机制,函数执行时形成私有作用域,保护私有变量不受外界影响。内部函数可以使用外部函数的参数和变量,函数和变量不会被垃圾回收机制回收。

闭包的价值在于可以作为函数对象或者匿名函数,对于类型系统而言这就意味着不仅要表示数据还要表示代码。支持闭包的多数语言都将函数作为第一级对象,就是说这些函数可以存储到变量中、作为参数传递给其他函数,最重要的是能够被函数动态地创建和返回。

作用是:匿名自执行函数:我们知道所有的变量,如果不加上var关键字,则默认的会添加到全局对象的属性上去,这样的临时变量加入全局对象有很多坏处,如:别的函数可能误用这些变量;造成全局对象过于庞大,影响访问速度(因为变量的取值是需要从原型链上遍历的)。

闭包对页面的影响:

1、防止全局污染。

2、内部的函数可以用外部的变量或参数。

3、内部的变量不会被垃圾回收机制回收。

4、闭包可以更新外部的变量的值。

5、用闭包可以模拟私有方法。

6、由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成页面性能的问题;闭包和全局变量一样,如果大量使用可能会造成内存泄漏。