假如定义了一个下边的函数,函数定义的时候参数为3个参数,可是调用函数的时候实际参数比定义时候的形参多了或者少了,应该怎么去查找?
解决方法:函数体内,标识符arguments是指向实参对象的引用,实参对象是一个类数组对象。
拿下边的函数举例子:三个参数x、y、z分别可以通过arguments[0]、arguments[1]、arguments[2]来获取,当然arguments中还有一个`length`的属性可以获取参数的个数。具体做法可以仿照下边提前做个错误提醒机制。不过这个做法也可以省略因为在javaScript中,已经把多余的参数显示为undefined。
function f(x,y,z){
if (arguments.length != 3){
throw new Error("function f called with" + arguments.length+"arguments,but it expects 3 arguments")
}
}