Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 参数对象是什么时候创建的?_Javascript_Scope_Arguments_Executioncontext - Fatal编程技术网

Javascript 参数对象是什么时候创建的?

Javascript 参数对象是什么时候创建的?,javascript,scope,arguments,executioncontext,Javascript,Scope,Arguments,Executioncontext,在博客文章中,它说在创建执行上下文期间,在执行任何代码之前,会创建参数对象并为其赋值。 然而,在凯尔·辛普森的书中,有一个例子是这样的 function foo(a) { console.log( a ); // 2 } foo( 2 ); 他说,将值“2”赋值给参数“a”发生在创建执行上下文之后和代码执行期间。 我一直在试图找到一个场景,在这个场景中,两者都有意义,但它们似乎完全相反。参数对象确切地创建于何时?提前谢谢你 对于blog,它引用的是(mdn链接),而不是局部变量,a是其中

在博客文章中,它说在创建执行上下文期间,在执行任何代码之前,会创建参数对象并为其赋值。 然而,在凯尔·辛普森的书中,有一个例子是这样的

function foo(a) {
  console.log( a ); // 2
}

foo( 2 );
他说,将值“2”赋值给参数“a”发生在创建执行上下文之后和代码执行期间。

我一直在试图找到一个场景,在这个场景中,两者都有意义,但它们似乎完全相反。参数对象确切地创建于何时?提前谢谢你

对于blog,它引用的是(mdn链接),而不是局部变量,a是其中之一。

首先是arguments list对象

然后将其传递到(或最终调用函数的任何其他内部方法),然后传递到

之后,当代码求值时,将从执行上下文中获取


以上所有细节:

感谢您的回复!我认为参数就像局部变量。在你给我的链接中,它说“arguments对象是一个在所有函数中都可用的局部变量”,那么什么时候把2赋值给变量a呢?在创建after?@OneAnd的执行上下文期间,它完全取决于您所说的“参数”是什么意思。请注意,“arguments对象是与传递给函数的参数相对应的类似数组的对象。”谢谢!那么,当博客文章说“创建arguments对象,检查参数的上下文,初始化名称和值并创建引用副本”时,是不是错了?我想这和我解释的一样。我想我混淆了arguments对象和参数中的变量。谢谢你的澄清。这真的很有帮助。