Argumentsオブジェクト


🚩論点の対象となるその他の位置続きです!

Argumentsオブジェクトとは?

  • argumentsオブジェクトは、関数を実行(呼び出し)するときに入力するパラメータの類似配列です.
  • argumentsオブジェクトは、すべての関数で使用可能な領域変数です.
  • 類似配列? length属性とともに0からインデックスを開始する他の属性を持つが、ArrayのforEach、mapなどの組み込みメソッドは持たない
    function foo () {
      console.log(arguments);
    }
    
    foo(1, 2, 3); 
    // [object Arguments] { 0: 1, 1: 2, 2: 3}

    なぜ、いつ使いますか。

  • パラメータが固定されていない
  • パラメータの個数によって異なる
  • 固定数のパラメータではなく、関数を実行するたびに呼び出しパラメータの数を決定し、それに応じて操作する場合はargumentsオブジェクトを使用します。

    サンプルコード

    function sum(){
        var i, _sum = 0;    
        for(i = 0; i < arguments.length; i++){
            document.write(i+' : '+arguments[i]+'<br />');
            _sum += arguments[i];
        }   
        return _sum;
    }
    document.write('result : ' + sum(1,2,3,4));
    関数sumは、パラメータに渡された値を加算して返す関数です。しかし、最初の行のように、関数とパラメータの定義はありません。しかし最後の行では4つのパラメータが関数sumに渡される.