arguments 对象表示函数的实参集合,仅能够在函数体内可见,并可以直接访问。
arguments 对象的 length 属性和 callee 属性最为常用:
使用 length 属性可以获取函数的实参个数。arguments 对象只能在函数体内可见,因此 arguments.length 也只能在函数体内使用。
使用 callee 属性可以引用当前 arguments 对象所在的函数。使用 callee 属性可以在函数体内调用函数自身。在匿名函数中,callee 属性比较有用。例如,利用它可以设计递归调用。
function checkArg(a) { //检测函数实参与形参是否一致
if (a.length != a.callee.length) //如果实参与形参个数不同,则抛出错误
throw new Error(“实参和形参不一致”);
}
function f(a, b) { //求两个数的平均值
checkArg(arguments); //根据arguments来检测函数实参和形参是否一致
return ((a * 1 ? a : 0) + (b * 1 ? b : 0)) / 2; //返回平均值
}
console.log(f(6,10)); //抛出异常。调用函数f,传入一个参数