JS中的闭包

闭包 = 内层函数 + 外层函数的变量

概念:一个函数对周围状态的引用捆绑到一起  内层函数中访问到其外层函数的作用域

例如:

JS中的闭包_第1张图片

闭包的作用:封闭数据  提供操作 外部也可以访问函数内部的变量

闭包的基本格式:

JS中的闭包_第2张图片

JS中的闭包_第3张图片

闭包可以实现数据私有化

比如:我们做一个统计函数调用次数 函数调用一次  就++

JS中的闭包_第4张图片

但是这个count的全局变量   很容易很修改

所以我们可以使用闭包实现属性私有化

JS中的闭包_第5张图片

这里我们通过调用fu()这个函数  返回函数fun  使用result接收 才能使用count增加   外部无法直接嗲用

总结:

1.闭包:内层函数+外层函数的变量

2.闭包的作用:

        封闭数据  实现数据私有化  外部也可以访问函数内部的数据

        闭包很有用  因为它允许将函数与其所操作的某些数据(环境)关联起来

3.闭包可能引起的问题:

        内存泄漏

闭包容易造成内存泄漏:该被回收没能被回收

你可能感兴趣的:(js,前端)