参考 在A作用域中使用的变量x,却没有在A作用域中声明(即在其他作用域中声明的),对于A作用域来说,x就是一个自由变量。 let x = 1function foo() { console.log(x)} 参考深入理解javascript原型和闭包(14)——从【自由变量】到【作用域链】