在这篇博文中,它说在执行任何代码执行之前,在创建执行上下文期间创建了参数对象并为其赋值。然而,在Kyle Simpson 的YDKJS一书中,有一个看起来像这样的例子,
function foo(a) { console.log( a ); // 2 } foo( 2 );
并且他说将值 '2' 赋值给参数 'a' 发生在创建执行上下文之后和代码执行期间。我一直在试图找到一个场景,其中两者都有意义,但它们似乎完全相反。参数对象是什么时候创建的?先感谢您!
首先在调用方创建参数列表对象。
然后它被传递到EvaluateDirectCall(或任何其他最终调用函数的内部方法),然后创建执行上下文。
EvaluateDirectCall
之后,当代码评估时 -从执行上下文中获取对变量的引用。
全部来自上面的详细信息: FunctionDeclarationInstantiation
FunctionDeclarationInstantiation
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
点击生成二维码
我来说两句