arguments 物件
阿新 • • 發佈:2018-11-09
arguments 物件
arguments 是一個偽陣列物件. 它表示在函式呼叫的過程中傳入的所有引數的集合.
在函式呼叫過程中沒有規定引數的個數與型別, 因此函式呼叫就具有靈活的特性, 那麼為了方便使用,
在 每一個函式呼叫的過程中, 函式程式碼體內有一個預設的物件 arguments, 它儲存著實際傳入的所有引數.
js 中函式並沒有規定必須如何傳參
- 定義函式的時候不寫引數, 一樣可以呼叫時傳遞引數
- 定義的時候寫了引數, 呼叫的時候可以不傳參
- 定義的時候寫了一引數, 呼叫的時候可以隨意的傳遞多個而引數
在程式碼設計中, 如果需要函式帶有任意個引數的時候, 一般就不帶任何引數, 所有的 引數利用 arguments 來獲取.
一般的函式定義語法, 可以寫成:
function foo ( /* ... */ ) {
}
利用 Function 建立一個函式, 要求允許函式呼叫時傳入任意個數引數, 並且函式返回這些數字中最大的數字.
function foo ( ) {
// 所有的引數都在 arguments 中. 將其當做陣列使用
// 問題而已轉換成在有一個數組中求最大值
var args = arguments;
var max = args[ 0 ];
for ( var i = 1; i < args.length; i++ ) {
if ( max < args[ i ] ) {
max = args[ i ];
}
}
return max;
}
練習: 利用 Function 寫一個函式, 要求傳入任意個數字 求和
var sum=new Function(`
var args=arguments;
var sum=0;
for(var i=0;i<args.length;i++){
sum+=args[i]
}
return sum
`)