使用 arguments 物件

2022-09-16 10:24:11 字數 855 閱讀 5830

arguments 物件表示引數集合,它是乙個偽類陣列,擁有與陣列相似的結構,可以通過陣列下標的形式訪問函式實參值,但是沒有基礎 array 的原型方法。 

//

函式沒有定義形參,但是在函式體內通過 arguments 物件可以獲取傳遞給該函式的每個實參值。

function f ()

}f(3, 3, 6); //

逐個顯示每個傳遞的實參

通過修改arguments物件的 length屬性值,也可以達到改變函式實參個數的目的。當 length 屬性值增大時,則增加的實參值為 undefined,如果 length 屬性值減小,則會丟棄arguments 資料集合後面對應個數的元素。 

function

f()}

f(3, 3, 6); //

返回提示 3、 3

使用 callee **函式

arguments 物件包含乙個 callee 屬性,它引用當前 arguments 物件所屬的函式,使用該屬性可以在函式體內呼叫函式自身(arguments.callee())。在匿名函式中,callee 屬性比較有用,利用它可以設計函式選代操作。

//

使用 arguments.callee 獲取匿名函式,然後通過函式的 length 屬性獲取函式形參個數,最後比較實參與形參個數以檢測使用者傳遞的引數是否符合要求。

function

f (x, y, z)

else

}alert(f(3, 4, 5)); //

返回值為 12

注:應用範圍實參不確定的情況下

細解arguments物件

函式內部的arguments物件到底是什麼?難道就是簡單的接收函式引數的物件嗎?在這些問題中,開始了重新對arguments的重新學習。arguments物件是所有 非箭頭 函式中都可用的區域性變數。你可以使用arguments物件在函式中引用函式的引數。此物件包含傳遞給函式的每個引數的條目,第乙個...

簡單了解arguments物件

arguments物件是所有 非箭頭 函式中都可用的區域性變數,此物件包含傳遞給函式的每個引數。arguments類似array,但不是乙個array例項,除了length屬性和索引元素之外沒有任何array屬性。arguments物件的長度由實參 實際呼叫的引數 而不是形參 正式宣告接受的引數 決...

arguments類陣列物件

ecmascript中的所有引數傳遞的都是值,不可能通過引用傳遞引數。js函式沒有真正意義上的過載。在函式內部有兩個特殊的物件 arguments和this。當函式被呼叫時,傳入的引數將儲存在arguments類陣列物件中,通過arguments可以訪問所有該函式被呼叫時傳遞給它的引數列表。argu...