函数执行时所在的作用域,是定义时的作用域,而不是调用时所在的作用域 高天赐 2022-06-12 163 阅读1分钟 函数本身也是一个值,也有自己的作用域。它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。 var a = 1;var x = function () { console.log(a); }; function f() { var a = 2; x(); } f() // 1 上面代码中,函数x是在函数f的外部声明的,所以它的作用域绑定外层,内部变量a不会到函数f体内取值,所以输出1,而不是2。