一、什么是闭包?
声明一个变量,声明一个函数,在函数内部访问外部的变量,那么这个函数加这个变量叫做闭包。
如下代码:
var x = '变量'
function f(){
console.log(x)
}
二、闭包有何作用?
1、闭包的用途是间接访问一个变量或隐藏一个变量,我们无法直接访问到函数内部的变量,必须通过一个函数间接的访问到;
2、可以把变量的值保存在内存中;即使暂时没有使用。
function foo() {
var a = 2
function bar() {
console.log(a)
}
return bar
}
var xxx = foo()
xxx() // 2
上面的代码中,变量a和函数bar组成了一个闭包。return bar只是为了bar能够被使用,跟闭包无关。