在一個函數體內,標識符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); }