在一个函数体内,标识符arguments具有特殊含义.
Arguments对象是一个类似数组的对象
eg:
验证函数参数的正确数目

function f(x, y, z) { 
     if (arguments.length != 3) { 
         throw new Error("function with " + arguments.length + "arguments, but it expects 3 arguments.") 
         // now do the actual function 
     } 
}

eg:
简单的max函数能接受任意数目的实际参数

function max() { 
     var m = Number.NEGATIVE_INFINITY; 
     for (var i = 0; i < arguments.length; i++) { 
         if (arguments[i] > m) m = arguments[i]; 
     } 
     return m;
}
var largest = max(1, 100, 92, 8, 5, 108);

arguments还定义了callee属性,用来引用当前正在执行的函数
eg:
计算阶乘的函数

function f(x) { 
     if (x <= 1) return 1; 
     return x * arguments.callee(x - 1);
}


前端      javascript

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!