• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:引数なしの関数で疑問です)

javascriptの関数宣言で引数なしでも呼び出し可能?

このQ&Aのポイント
  • javascriptでは、関数を引数なしで宣言しても、呼び出し時に好きな個数の引数を指定することができます。
  • この特徴は、他のプログラミング言語とは異なり、柔軟な引数の受け渡しが可能となっています。
  • このため、引数の数が事前に決まっていない場合や、複数の引数パターンに対応する必要がある場合に便利に使えます。

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

できます JavaScriptでは関数の引数は arguments というオブジェクトに格納されます つまり function aaa( a0, a1) { とした場合、常に a0 == arguments[0] a1 == arguments[1] が成り立ちます

orangebanana
質問者

お礼

回答ありがとうございます。 関数の定義の引数の個数と、関数を呼び出す際の引数の個数が一致しないのは javascriptではOKなんですね。 なんて簡便なんだろう。 引数がargumentsオブジェクトに格納されるという仕組みになっているのですね。 飲み込めました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

argumentsは慣れないと分かりづらいですね きちんとかくとこんな感じです <script> window.goukei=function(){ var ans = 0; var obj=arguments.callee; for (var i = 0; i < obj.arguments.length; i++) { ans += obj.arguments[i]; } return(ans); } var sum = goukei(1, 2, 3, 4, 5); alert(sum); </script>

orangebanana
質問者

お礼

回答ありがとうございます。 今はまだjavascriptは未熟なので、提示してくださったコードを完全に理解 できないのですが、わかるようになるように、がんばろうと思います。 javascriptひととおり、飲み込んでから、再度、コードを読んでみます。

すると、全ての回答が全文表示されます。
  • singlecat
  • ベストアンサー率33% (139/418)
回答No.2

JavaScriptは引数をチェックしてくれない仕様になっています。 しかし、"arguments"というオブジェクト?があり、 これにより引数を管理する事ができます。 で、例題の場合は可変引数(引数で渡す値の数が自由に変えられる)のもので、 引数分だけループして合計すると言うものです。

orangebanana
質問者

お礼

回答ありがとうございます。 定義する側と、呼び出す側が一致していなくても、きちんとブラウザで実行されるので あれ?と思ったら、そういうことだったんですね。 関数呼び出しで渡す引数の個数を、いろいろ変えられたら便利なんでしょうね。 今は、まだ未熟なので使いこなせないけど。

すると、全ての回答が全文表示されます。

関連するQ&A