JS獲取引數個數(包括形參和實參)

2020-07-16 10:05:03
使用 JS arguments 物件的 length 屬性可以獲取函數的實參個數。arguments 物件只能在函數體內可見,因此 arguments.length 也只能在函數體內使用。

使用函數物件的 length 屬性可以獲取函數的形參個數。該屬性為唯讀屬性,在函數體內、體外都可以使用。

範例

下面範例設計一個 checkArg() 函數,用來檢測一個函數的形參和實參是否一致,如果不一致則丟擲異常。
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));  //丟擲異常。呼叫函數f,傳入一個引數
溫馨提示:讀者可以轉到 arguments.callee 了解第 2 行程式碼中 callee 的用法。