闭包的定义:
词法作用域 (lexical environment)
函数在执行的过程中,先从自己内部找变量
如果找不到,再从创建当前函数所在的作用域(词法作用域)去找, 以此往上
注意找的是变量的当前的状态
函数连同它作用域链上的要找的这个变量,共同构成闭包
一般情况下使用闭包主要是为了
1、封装数据
2、暂存数据
比如:
function car(){
var speed = 0
function fn(){
speed++
console.log(speed)
}
return fn
}
var speedUp = car()
speedUp() //1
speedUp() //2
网友评论