在this博文中,它表示在执行任何代码之前,创建参数对象并在创建执行上下文期间为其赋值。 但是,在凯尔辛普森的书YDKJS中,有一个看起来像这样的例子,
function foo(a) {
console.log( a ); // 2
}
foo( 2 );
他说,价值分配' 2'讨论' a'在执行上下文创建之后和代码执行期间发生 我一直试图找到一个两者都有意义的场景,但它们似乎完全相反。什么时候创建参数对象?提前谢谢!
答案 0 :(得分:0)
对于博客,它是对arguments object
(mdn链接)的反应,而不是局部变量,其中a是一个。
答案 1 :(得分:0)
首先,参数列表对象是created on the caller side。
然后将其传递到EvaluateDirectCall
(或最终调用函数的任何其他内部方法),然后传递到execution context is created。
然后在代码评估时 - 从执行上下文中获取references to the variables。