闭包
什么是闭包
1 | function 函数(){ |
上面的例子中
- 内部函数 + 变量(内部函数能访问到这个变量) = 闭包
- return 内部函数只是为了能使用到这个内部函数 , 也就是能使用闭包
- 函数套函数是为了隐藏一个变量 或者说这就是闭包的作用
闭包的作用
1 | function create() |
- 闭包的作用就是间接的访问一个变量 ,隐藏一个变量
- 去掉那个外层函数 变量就会很容易被直接使用并且修改
- n 是一个局部变量 ,在函数外面是使用不到这个变量的
- 这时候get 和 set 函数就是 用来间接访问这个变量的访问器
- 闭包和变量的作用域有关
在我们写js代码的时候会很容易就出现闭包, 而不是我们经常有意的去创造闭包
引用维基百科:闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。