三十三.函数运行时的作用域

63 阅读1分钟

函数的作用域和运行时的作用域:

函数调用后运行的地方就是在写函数代码的地方(定义和声明的地方)运行代码,不是在调用代码的地方运行代码

函数在声明和定义时就有了它所在的作用域,但是函数的调用可能发生在其他作用域,运行代码时一定是去它声明和定义的作用域执行代码。

image.png

image.png

function fn(){

var a=10;

return function fm(){console.log(a)};

};

var a=100;

fn()();

虽然第二个小括号是在全局作用域调用运行fm函数,但是fm函数定义的作用域在fn内部,因此执行代码的作用域在fn内部