Javascript可变长度参数列表 - Arguments对象

在一个函数体内,标识符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);
}

 

 

posted @ 2013-10-03 10:35  Master HaKu  阅读(4876)  评论(0编辑  收藏  举报