关于闭包

1.什么是闭包


关于闭包_第1张图片
闭包

答:函数xxx里面有一个变量a和一个函数yyy,函数yyy能够获取到变量a,

        函数yyy   与   函数xxx里面的变量a   就是一个闭包。



2.闭包的作用

想要了解什么是闭包,首先需要知道变量的作用域。就是JS中的全局作用域函数作用域

函数内部可以获取全局作用域的变量,反过来就不行。

同理,如果函数里面还有还有函数,那么里层函数能够获取外部函数作用域的变量,反过来就不行。

也就是说,父级作用域里面的变量对子级都是可见的,若子级想获取一个自身没有声明变量,就会逐级向上寻找,获取离自身最近的那个。而子级作用域的变量对父级就不见了。

综上所诉:

①,闭包能够让变量保存在内存中。因为内层函数对外层作用域变量的持续引用,所以在调用函数是能够保证变量保存在内存中不被回收。

②,能够让外层作用域访问到内层作用域的变量。

③,闭包能够隐藏(保护)一个变量。也就是说,你只能通过调用函数来操作变量,而不能通过其他途径去修改这个变量。

你可能感兴趣的:(关于闭包)