javascript - 函数表达式的词法范围

标签 javascript lexical-scope function-expression

如果我们将 javascript 引擎的操作分为编译阶段(设置整个词法作用域图)和运行阶段(在编译阶段使用词法作用域设置执行代码),那么函数表达式的作用域何时设置?是在编译阶段还是运行/解释阶段?

此外,每当设置函数表达式的作用域时,父作用域将始终是全局作用域,对吗? (我已经看到发生这种情况的代码,只是想确认一下)。

最佳答案

函数的作用域(包括函数表达式)是在创建函数时设置的 - 这发生在运行阶段,而不是解析阶段。

关于javascript - 函数表达式的词法范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36240571/

相关文章:

javascript - 如何使用 Greasemonkey/Tampermonkey 脚本更改类 CSS?

r - 了解嵌套函数的作用域

javascript - 为什么使用命名函数表达式?

javascript - 如何将 D3 JavaScript 中的 'this' 转换为 TypeScript?

javascript - 保存在 JavaScript 中的命名函数表达式中标识符的不可变绑定(bind)记录在哪里?

javascript - 函数声明或函数表达式

javascript - 打开网页并使用 JavaScript 解析它

javascript - 通过 nodejs 重新附加到生成的进程

javascript - 在asp.net mvc 4.0(Angular js)中使用多文件控件上传多个图像

javascript - 有TDZ为什么要提升变量