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);
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM