在ECMA-262, version 5.x(又名ECMAScript 5 | ES5)中,以前有一个13.2节,称为Creating Function Objects
。
我一直在搜索标准的最新版本ECMAScript 2017(又名ECMAScript 8 | ES8),但是找不到类似的描述。
ES8中的14.1节称为Function Definitions
,与ES5中的13节相同。就我所知。
他们把那块东西都拿走了吗我认为这对定义新功能时实际发生的情况非常有用。
最佳答案
由于功能对象和功能语法的种类更多,因此情况有所改变。
在ES5中,我们有
10 Executable Code and Execution Contexts
…
10.4 Establishing an Execution Context
…
10.4.3 Entering Function Code
10.5 Declaration Binding Instantiation
10.6 Arguments Object
…
13 Function Definition
(syntax and evaluation of declarations and expressions)
13.1 Strict Mode Restrictions
13.2 Creating Function Objects
13.2.1 [[Call]]
13.2.2 [[Construct]]
13.2.3 The [[ThrowTypeError]] Function Object
在ES8中,我们有
9 Ordinary and Exotic Objects Behaviours
9.1 Ordinary Object Internal Methods and Internal Slots
9.2 ECMAScript Function Objects
9.2.1 [[Call]] ( thisArgument, argumentsList )
9.2.2 [[Construct]] ( argumentsList, newTarget )
9.2.3 FunctionAllocate ( functionPrototype, strict, functionKind )
9.2.4 FunctionInitialize ( F, kind, ParameterList, Body, Scope )
9.2.5 FunctionCreate ( kind, ParameterList, Body, Scope, Strict [ , prototype ] )
9.2.6 GeneratorFunctionCreate ( kind, ParameterList, Body, Scope, Strict )
…
14 ECMAScript Language: Functions and Classes
14.1 Function Definitions
…
14.1.18 RS: EvaluateBody
14.1.19 RS: IteratorBindingInitialization
14.1.20 RS: InstantiateFunctionObject
14.1.21 RS: Evaluation
14.2 Arrow Function Definitions
…
14.3 Method Definitions
…
14.4 Generator Function Definitions
…
14.5 Class Definitions
…
14.6 Async Function Definitions
…
14.7 Async Arrow Function Definitions
…
…
关于javascript - ECMAScript 2017:“13.2创建功能对象”从ES5到哪里去了?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49496892/