什么是闭包?
var local = 10; funtion foo(){ console.log(local) }
其实上面的代码,就表示一个闭包。也就是:函数,以及函数内部能访问到的变量的集合
但通常情况下使用闭包时,是使用函数嵌套函数实现的,如下
funtion foo(){ var local = 10; funtion bar() { local++; return local; } return bar; } var func = foo(); func();
函数bar,以及其内部能访问到的所有变量的集合构成了一个闭包。之所以使用函数嵌套函数的方式,是为了达到闭包的目的--隐藏变量
闭包的作用
用来间接访问一个变量,或者说是隐藏变量
如果将一个变量声明为全局变量,那么所有人都可以访问到,所有人都可以改动数据,不安全
但如果使用局部变量声明,那么外部没有人可访问到
所以使用闭包,将更改数据的方法返回,以达到安全性和更改数据的兼得