我对javascript很新。在浏览javascript代码时,我找到了::
function Method1(sender, args) { ... }
function Method2(source, arguments) { ... }
何时使用(sender,args)和(source,arguments)?他们的意思是什么?
答案 0 :(得分:1)
arguments
实际上不是JS reserved word,否则您的Method2
将无效并且会抛出语法错误。
在函数的参数列表中使用arguments
时,它只是一个常规函数参数/参数,与sender
,source
和args
完全相同。
现在确实Arguments
不能用作类名。它在内部由JavaScript用于创建arguments
object(这是Tushar在评论中提到的那个)。
当控件进入功能代码的执行上下文时,创建一个arguments对象,除非(在10.5中指定)标识符 arguments 作为函数的 Identifier 出现< em> FormalParameterList 或作为功能代码中包含的 VariableDeclaration 或 FunctionDeclaration 的标识符出现。
在每个函数中,您可以使用此arguments
类似数组的对象访问在该函数调用期间传递的所有参数。对于可能接受非预定(且可能无限制)数量的参数的函数非常有用。
那么你的Method2
会发生什么呢?它使用相同的标识符&#34;参数&#34;现在只分配一个参数。好像它有阴影内置的arguments
对象。
如果它没有在参数列表中使用,那么功能块中的arguments
将自动分配所有参数列表。
演示:http://jsfiddle.net/5cexbrff/(参见控制台中的结果)