2012年05月08日

JavaScriptの可変長引数

JavaScriptには可変長引数なんて立派な仕組みはありません。というより、引数の受け渡しは(JavaやC#などのきっちり系言語に比べて)かなりいい加減です。



//引数1個の関数があったとして・・・
function doSomething(arg) {
alert(arg);
}

//引数を渡さなくてもエラーになりません。
doSomething();

//引数を余分に渡してもエラーになりません。
doSomething("引数1", "引数2");




とはいえ、可変長引数みたいなことはできます。functionの内部にいつでも存在してるargumentsを使います。



//関数の定義には引数がないけど・・・
function doSomething() {
//argumentsに渡された引数が入ってる!
for (var i = 0; i < arguments.length; i++) {
alert(arguments[i]);
}
}

doSomething("引数0", "引数1", "引数2");




ちなみにargumentsは配列っぽく使えますが、正確には配列(Array)ではありません。Argumentsというコレクションオブジェクトです。なので配列(Array)の関数を持ってなかったりします。たとえば「arguments.slice()」なんて書くと怒られちゃいます。





タグ:javascript
posted by ぺるたご at 00:05| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/268951449

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。