什么是自由变量呢?
自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量。
从技术的角度讲,所有的JavaScript函数都是闭包
从实践角度:以下函数才算是闭包
function foo() {
var a = 'aa'
let b = 'bb'
function bar() {
const c = 'cc'
const d = 'dd'
console.log(a)
console.log(b)
function car() {
console.log(c)
}
console.dir(car)
}
bar()
console.dir(bar)
}
foo()