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

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

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

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

 

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

 

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

 

posted on 2018-11-02 21:29  YKing_匆  阅读(313)  评论(0编辑  收藏  举报