什么是自由变量呢?
自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量。
从技术的角度讲,所有的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()