Javascript可変長パラメータ一覧-Agmentsオブジェクト

1968 ワード

一つの関数の中で、識別子argmentsは特別な意味を持つ.
Agmentsオブジェクトは同じ配列のオブジェクトです.
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 larget=max(1,100,92,8,5,108)
 
argmentsはまた、カレント実行中の関数を参照するためにcalee属性を定義しています.
eg:
階乗の関数を計算します.
function f(x) {
    if (x <= 1) return 1;
    
    return x * arguments.callee(x - 1);
}