arguments屬性是正在執行的函數的內置屬性,返回該函數的arguments對象。arguments對象包含了調用該函數時所傳入的實際參數信息(參數個數、參數值等)。
該屬性屬于Function對象,所有主流瀏覽器均支持該屬性。
## 語法
```
[functionObject.]arguments
```
只有在當前函數正在執行時該屬性才有效。
## 返回值
arguments屬性的值為Object類型,返回正在執行的當前函數的arguments對象。
arguments對象包含調用該函數時所傳入的實際參數信息,例如:參數的個數和參數的值。我們可以通過arguments屬性讓函數處理可變數量的參數。
arguments對象有以下三個屬性:
- length屬性,返回實際傳入的參數個數。
- callee屬性,返回當前函數的引用(匿名函數可以使用該屬性實現遞歸調用)。
- 0...n屬性,以順序索引訪問傳入的具體參數。例如,使用arguments[0]可以訪問傳入的第1個參數,arguments[1]可以訪問傳入的第2個參數。
arguments對象具有length屬性和0...n屬性,看起來與數組的訪問方式相同,但arguments并不是數組,它沒有數組對象所具備的其他成員屬性和方法。
## 示例&說明
```
function test(){
document.writeln("實際傳入的參數個數:" + arguments.length); // 實際傳入的參數個數:3
/* "test."可以省略 */
for(var i = 0; i < test.arguments.length; i++){
document.writeln("傳入的第" + (i + 1) +"個參數:" + arguments[i]);
}
// 傳入的第1個參數:1 傳入的第2個參數:張三 傳入的第3個參數:true
// callee屬性返回的就是當前函數
document.writeln( arguments.callee === test ); // true
};
test(1, "張三", true);
```