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) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

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