argumentsオブジェクト
【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
【argumentsオブジェクト】
arguments オブジェクトは関数の中でのみ利用できるオブジェクトです。
関数に渡されてきた値をすべて格納しており、配列の要素のように arguments[0], arguments[1], .... という形で関数に渡されてきた値を取得することができます。なお arguments オブジェクトはアロー関数の中では使用できないのでご注意ください。
【argumentsオブジェクト】
arguments オブジェクトは関数の中でのみ利用できるオブジェクトです。
関数に渡されてきた値をすべて格納しており、配列の要素のように arguments[0], arguments[1], .... という形で関数に渡されてきた値を取得することができます。なお arguments オブジェクトはアロー関数の中では使用できないのでご注意ください。
関数にいくつの値が実際に渡されてきたのかは、 arguments オブジェクトの length プロパティを参照することで確認することができます。
関数で受け取る値の数が決まっていない場合
→arguments オブジェクトを使用することで順番に取り出すことができますが、現在は可変長引数の機能が利用できるようになりましたので arguments オブジェクトを使用しなくても数が決まっていない値を受け取ることができます。
→arguments オブジェクトを使用することで順番に取り出すことができますが、現在は可変長引数の機能が利用できるようになりましたので arguments オブジェクトを使用しなくても数が決まっていない値を受け取ることができます。
【実際に渡らさた引数の数を取得する(length)】 arguments オブジェクトの length プロパティを参照すると、実際に渡されてきた値を取得することができます。書式は次のようになります。
arguments.length
サンプル
function dispProfile(name, old){ console.log('arguments.length : ' + arguments.length); } dispProfile('Yamada', 24, 'Tokyo');実行 arguments.length : 3 dispProfile('Suzuki');実行 arguments.length : 1
arguments オブジェクトは関数の中でしか使用できないので、 length プロパティも関数内でのみ参照できます。
【呼び出し元から渡さらた値を取得する】
呼び出し元から渡されてきた値は関数の引数に記述した変数に格納されますが、それとは別に arguments オブジェクトにも格納されており、それぞれ arguments[0]、 arguments[1]、 ... という形取得することができます。
サンプル
function dispProfile(){
console.log('name : ' + arguments[0]);
console.log('old : ' + arguments[1]);
}
dispProfile('Yamada', 24);実行
name : Yamada
old : 24
サンプル2
arguments オブジェクトを使うことで引数の数が決まっていない場合でも順に渡されてきた値を取得して処理することができます。
function dispTotal(){ let sum = 0; for (let i = 0; i 実行 sum = 9 dispTotal(7, 12, 3, 2, 8);実行 sum = 32
【argumentsオブジェクトを使用する場合の注意点】
関数リテラルを使って関数を定義した場合であっても同じように使うことができます。
サンプル--関数リテラルの場合
let dispTotal = function(){
let sum = 0;
for (let i = 0; i 実行 sum = 9
ただし、アロー関数式を使って関数を定義した場合には、 arguments オブジェクトを使用することができず arguments is not defined というエラーが発生する
※コメント投稿者のブログIDはブログ作成者のみに通知されます