JS--理解参数,argument,重载

Posted YKing_匆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS--理解参数,argument,重载相关的知识,希望对你有一定的参考价值。

ECMAScript函数的参数与大多数其他语言函数的参数不同。ECMAScript函数不介意传递进来多少个参数,也不在乎传递进来的参数是什么数据类型。

原由在于,ECMAScript中的参数在内部是用一个数组来表示的。函数接收到的永远是数组,而不关心包含哪些参数。并且,实际上,在函数体内可以通过arguments对象

来访问这个参数数组,从而获取传递给函数的每一个参数。

不过,其实arguments对象只是与数组类似(他不是Array实例),因为可以使用方括号语法访问他的每一个元素。

 

关于arguments的行为,还有一个特殊性,那就是他的值永远和对应命名参数的值一致。但这不是说,读取这两个值,会访问同一个内存空间。他们的内存空间是独立的,但是值会同步。

 

ECMAScript函数是没有重载的。正如上面说的他的参数是一个arguments对象(类似数组),那么不管你怎么改变参数形式,他都会保存在一个数组里,最终访问的都是访问这个arguments对象数组。

 

以上是关于JS--理解参数,argument,重载的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript的重载(通过argument.length)

js arguments对象

javascript高级程序设计-3.7 函数

arguments对象详解

js中的arguments对象

利用argument对象在javaScript中实现重载(overload)