JavaScript函数的参数与大多数其他语言中函数的参数有所不同。JavaScript函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型。也就是说,即便你定义的函数只接收两个参数,在调用这个函数时也未必一定要传递两个参数。可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言。
之所以这样,是因为JavaScript中的参数在内部是用一个数组来表示的。函数接收到的始终是一个数组,而不关心数组中有哪些参数。这个数组里没有任何元素或者含有很多元素,都没有任何关系。在函数体内可以通过argument对象来访问这个参数数组,从而获取传递给函数的每一个参数。
其实,arguments对象只是与数组类似,因为可以使用方括号语法访问它的每一个元素(第一个元素是argument[0],第二个是argument[1],依次类推),使用length属性可以获取一共传过来多少参数。
function add(a,b){ alert(a+b); } function add(a,b){ alert(arguments[0]+arguments[1]); }
上面两种方法其实是一样的。
这说明JavaScript函数的一个重要特点,命名参数只提供便利,但不是必需的。
原文:http://www.cnblogs.com/bazhua/p/4736877.html