Javascriptで複数の関数の引数を配列として扱う

Javascriptにおいて、関数の実行時に引数を渡す際、複数の引数を渡したい時もある。さらにそれを配列として扱えられれば…

例えば、指定したidを持つ要素に対して関数内で何かしらの操作をする。

その対象が複数であり、なおかつ同じ処理をしたい。なんていうときに、

関数の引数に対象のidを列挙してその頭から尻尾までループで同一の処理をする。

ということができる。

実際に例を示すと、

<button onClick="test('aaa','bbb','ccc','ddd','eee')">test</button>

というようにtestと描かれたボタンを押すと、’aaa’,’bbb’,’ccc’,’ddd’,’eee’の5つの引数がtest()という関数に送られる。

関数側では、

function test(){
    var i;
    for(i=0;i<test.arguments.length;i++){
        window.alert(test.arguments[i]);
    };
}

という処理をするものとする。

ポイントは3,4行目に出てくる

「関数名」.arguments

という部分。

これで複数の引数をまるっとひとつの配列として扱える。

もう一つ注目したい点は、引数の数を特に意識すること無く関数を実行出来るということ。

つまり同一の処理をする対象が、html内で増えたり減ったりしても、引数を加えればいいだけでいい。

ページごとに異なる数の操作対象があるときなんかも楽に扱える。

getElementsByClassName()

getElementsByTagName()

なんかでも同一クラスorタグ名をごそっと取得ということができるが、明示的に対象を指定できるのがこの方法のメリットではないだろうか。

今回のサンプルコードはこちら

広告

t87r について

趣味:トランペット・釣り・コーディング JavascriptとGAE/Pythonを勉強中。
カテゴリー: Web Design タグ: , パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中