概要
これまでの関数は、呼び出し元の引数と、呼び出される関数側の引数についてみてきました。
注意深くプログラミングすれば特に問題なく動作しますが、
引数の順序や引数の数には気を配る必要は常にあります。
そこで、少し工夫をして、関数側の引数としてオブジェクトのプロパティを使う方法があります。
(呼び出す側の引数は、必然的にオブジェクト定義された値になります)
オブジェクトのプロパティを渡すことで、引数は一つになり、
「プロパティ名.値」という形で呼び出して利用することが可能です。
具体的に次のようなコードを書いて、試してみます。
function test1(args) {
//引数のオブジェクト内の1つ目の配列を呼び出して出力
console.log(args.testobj1[0]);
console.log(args.testobj1[1]);
console.log(args.testobj1[2]);
//引数のオブジェクト内の2つ目の配列を呼び出して出力
console.log(args.testobj2[0]);
console.log(args.testobj2[1]);
console.log(args.testobj2[2]);
console.log(args.testobj2[3]);
console.log(args.testobj2[4]);
}
//テスト用の配列の定義
let args1 = [10, 20, 30];
let args2 = [60, 70, 80, 90];
//オブジェクトの定義
let obj_args = {
testobj1: args1,
testobj2: args2
};
//ここで関数を呼び出す
//引数はオブジェクトをそのまま渡す
test1(obj_args);
出力結果
10 20 30 60 70 80 90 undefined
出力結果の一番最後は、わざと2つ目のテスト用配列の存在しない要素にアクセスしています。
この場合はエラーにはならずに、引数に渡したオブジェクトに格納されている2つめの配列の要素にアクセスしようとしますが、undefinedとして出力されます。