1. 程式人生 > >arguments 物件

arguments 物件

arguments 物件

arguments 是一個偽陣列物件. 它表示在函式呼叫的過程中傳入的所有引數的集合.
在函式呼叫過程中沒有規定引數的個數與型別, 因此函式呼叫就具有靈活的特性, 那麼為了方便使用,
在 每一個函式呼叫的過程中, 函式程式碼體內有一個預設的物件 arguments, 它儲存著實際傳入的所有引數.

js 中函式並沒有規定必須如何傳參

  1. 定義函式的時候不寫引數, 一樣可以呼叫時傳遞引數
  2. 定義的時候寫了引數, 呼叫的時候可以不傳參
  3. 定義的時候寫了一引數, 呼叫的時候可以隨意的傳遞多個而引數 

在程式碼設計中, 如果需要函式帶有任意個引數的時候, 一般就不帶任何引數, 所有的 引數利用 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

`)