當咱們不肯定有多少參數傳遞的時候,能夠使用 arguments 來獲取,在 JavaScript 中, arguments 實際上它是當前函數的一個內置對象。數組
全部的函數都內置了一個 arguments 對象,arguments 對象中 存儲了傳遞的全部實參 。瀏覽器
例如:函數
function numMax(){this
var max=arguments[0]; // arguments 中存儲了numMax函數中的全部實參:23,45,96,87 spa
for( var i=1; i<=arguments.length-1;i++){對象
if(arguments[i] > max){索引
max = arguments[i];ip
}io
}console
}
numMax(23,45,96,87);
在調用函數時,瀏覽器每次都會傳遞進兩個隱含的參數:
1. 函數的上下文對象 this
2. 封裝實參的對象 arguments
- arguments 是一個類數組對象,它也能夠經過索引來操做數據,也能夠獲取長度
- 在調用函數時,咱們所傳遞的實參都會在 arguments 中保存
- arguments . length 能夠用來獲取實參的長度
- 即便不定義形參,也能夠經過 arguments 來使用實參,只不過比較麻煩
arguments[ 0 ] 表示第一個實參
arguments[ 1 ] 表示第二個實參
- arguments 裏面有一個屬性:callee,屬性對應一個函數對象,就是當前正在執行的函數的對象
能夠使用 屬性 arguments 和函數 fun 作比較,相同返回 true,不然返回 false
console . log( arguments . callee == fun ); // true
例:
function fun(){
console . log( arguments instanceof Array ); // 判斷 arguments 是不是數組
console . log( Array . isArray( arguments ) ); // 判斷 arguments 是不是數組
console . log( arguments . length ); // fun 函數實參的長度
}
fun( );