gpt4 book ai didi

javascript - 所有的函数声明和表达式都是在幕后调用 new Function() 创建的吗?

转载 作者:行者123 更新时间:2023-11-30 05:50:34 24 4
gpt4 key购买 nike

我正在阅读 ECMA 262 v5 脚本中提到 Function definitions 的部分.对于函数声明和函数表达式,都提到了以下内容:

Return the result of creating a new Function object as specified in 13.2

13.2 节中提到的第一步是“创建一个新的本地 ECMAScript 对象...”,然后“将 F 的 [[Class]] 内部属性设置为“函数”。

由于“创建一个新的 Funciton 对象”的措辞,我想知道在幕后,函数声明/表达式是否是通过调用 new Function(....) 创建的?

最佳答案

section 15.3.2.1 ECMA Script 规范的一部分谈到了 new Function(...) 表达式,而 new Function(...) 表达式本身指的是与 13.2 节中指定的相同的逻辑。

第 11 条关于 new Function(...) 表达式指定...

Return a new Function object created as specified in 13.2 passing P as the FormalParameterListopt and body as the FunctionBody. Pass in the Global Environment as the Scope parameter and strict as the Strict flag.

第 13.2 节是函数创建逻辑的单一来源,无论是创建函数表达式、函数声明还是调用 Function 构造函数。

所以回答这个问题,没有。创建函数声明/表达式不会调用 new Function(...)。

关于javascript - 所有的函数声明和表达式都是在幕后调用 new Function() 创建的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15097727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com