Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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_Node.js - Fatal编程技术网

为什么可以将参数传递给javascript中没有参数的函数?

为什么可以将参数传递给javascript中没有参数的函数?,javascript,node.js,Javascript,Node.js,今天我遇到了一个奇怪的decorator函数,它没有任何参数,但在其作用域内使用了参数。一开始我以为这是个错误 然后我在node中定义了这样一个函数: noParameterFunction() { console.log(arguments) } 使用参数“a”调用此函数将得到以下结果: > noParameterFunction('a') [Arguments] { '0': 'a' } undefined 我以为会有一个错误,参数被传递给一个不需要抛出参数的函数,但我得到了这

今天我遇到了一个奇怪的decorator函数,它没有任何参数,但在其作用域内使用了参数。一开始我以为这是个错误

然后我在node中定义了这样一个函数:

noParameterFunction() {
  console.log(arguments)
}
使用参数“a”调用此函数将得到以下结果:

> noParameterFunction('a')
[Arguments] { '0': 'a' }
undefined
我以为会有一个错误,参数被传递给一个不需要抛出参数的函数,但我得到了这个错误

有人能解释一下这种设计背后的原理吗?谢谢


注意:使用arrow声明函数将无法再现下面的结果。

该[arguments]对象包含传递给函数的参数数组

参数是在定义方法的同时定义的变量,它将保存传递给它的参数,参数是传递给该参数的实际变量。
您正在打印参数,即调用函数时传递的值。由于您使用参数a调用它,因此它是打印的,实际上可以通过[arguments]对象使用,因此它不是错误,不会触发异常。

该[arguments]对象包含传递给函数的参数数组

参数是在定义方法的同时定义的变量,它将保存传递给它的参数,参数是传递给该参数的实际变量。 您正在打印参数,即调用函数时传递的值。由于您使用参数a调用它,因此它是打印的,实际上可以通过[arguments]对象使用,因此它不是错误,也不会触发异常。

:

arguments是一个类似数组的对象,可在函数内部访问,它包含传递给该函数的参数值

arguments对象是所有非arrow函数中可用的局部变量

有人能解释一下这种设计背后的原理吗

arguments对象对于使用比正式声明接受的参数更多的参数调用的函数很有用。对于可以传递可变数量参数的函数,此技术非常有用

:

arguments是一个类似数组的对象,可在函数内部访问,它包含传递给该函数的参数值

arguments对象是所有非arrow函数中可用的局部变量

有人能解释一下这种设计背后的原理吗

arguments对象对于使用比正式声明接受的参数更多的参数调用的函数很有用。对于可以传递可变数量参数的函数,此技术非常有用


见-。arguments对象是所有非arrow函数中可用的局部变量。您可以在Twitter上询问Brendan Eich,但他的答案很可能是。请参阅-。arguments对象是所有非arrow函数中可用的局部变量。你可以在Twitter上询问Brendan Eich,但他的答案很可能是。问题是:有人能解释这种设计背后的原理吗?【arguments】对象是在spread运算符存在之前使用的。问题是:有人能解释此设计背后的原理吗?[arguments]对象是在spread运算符存在之前使用的。