- 什么是「闭包」。
- 「闭包」的作用是什么。
在一个立即执行函数当中:
var local = "aaaa";
function foo() {
console.log(local)
}
首先,假设以上几行代码运行在立即执行函数当中,那么这就是一个闭包,那么我们可以去定义:
「函数」和「函数内部能访问到的变量」(也叫环境)的总和,就是一个闭包。
也许你会说闭包是需要函数套函数的
function foo() {
var local = 1
function bar() {
local++
return local
}
return bar
}
var func = foo()
func()
- 套函数是因为需要局部变量
- return bar是为了使用bar,如果把return bar换成window.bar = bar也可以,只要让外面能够访问的到就行。
闭包的作用
闭包常常用来间接访问一个变量, 换句话说就是隐藏一个变量。