• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:引数の数によって関数の動作を変えるには?)

引数の数によって関数の動作を変えるには?

babu_babooの回答

  • ベストアンサー
回答No.1

arguments.length

think49
質問者

お礼

babu_babooさん、回答早いです…。 あっという間に解決いたしました。 ありがとうございました! <script type="text/javascript"> function helloWorld(){  switch(arguments.length){   case 1:    alert(arguments[0] + ', World!');    break;   case 2:    alert(arguments[0] + ', ' + arguments[1] + '!');    break;   default:    return false;  } } helloWorld('Hello'); // Hello, World! helloWorld('Hello', 'OKWave'); // Hello, OKWave! </script> arguments - MDC https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Functions/arguments JavaScript講座 : 関数のパラメータ http://www.openspc2.org/JavaScript/kouza2007/function/parameter/index.html

think49
質問者

補足

一番早くに arguments の回答を下さったbabu_babooさんをベストアンサーにさせていただきます。 steel_grayさんの第二引数を省略してcallできるという回答も参考になりました。 旧システムであれば、次点を差し上げたいぐらいです。 ありがとうございました!

関連するQ&A

  • JQueryでfunctionに引数としてIDを渡して処理する方法

    HTMLの制御にjQueryを使用しています。 functionに引数としてIDを渡して処理をしたいのですが、やりかたが分かりません。 テスト的にtest1Script、test2Scriptを作成しました。 test1と同様の結果を、引数にIDを渡すtest2Scriptでも得たいのですが、 失敗(1)や失敗(2)のように書いた場合、うまくいきません。何か良い方法はないでしょうか。ご教授下さい。 <script type="text/javascript"> function test1Script(){ alert($("#textfield1").val()); } function test2Script(objId){ //alert($("#objId").val()); 失敗(1) //alert($(#objId).val()); 失敗(2) } </script> </head> <body> <input type="text" id="textfield1" value="test1" /> <input type="button" id="button1" value="テスト1" onclick="test1Script();" /> <input type="button" id="button2" value="テスト2" onclick="test2Script('textfield1');" /> </body> </html>

  • 引数が分かりません。

    JavaScriptの超初心者です。 (1)のmessageと(2)のmessageと(3)の'Hello JavaScript !'との相関関係がよく分かりません。  又、引数そのものの意味もよく分かりません。 どなたか教えて下さい、よろしくお願いします。 <html> <head><title>イベントハンドラーの定義</title>    <SCRIPT> <!-- function showMessage(message){                   (1) window.alert(message);                     (2)                    } //--> </SCRIPT> </head> <body> <center> <hr>イベントハンドラーの定義<hr><br> ボタンをクリックするとダイアログボックスが表示されます。<br><br> <form>   <input type="button" value="ここをクリック"    onclick="showMessage('Hello JavaScript !');">         (3) </form> </center> </body> </html>

  • innerHTMLが動作しない。

    JavaScriptをHTMLファイルに記述した場合、最初にfunctionスコープ内の動作以外は全て行なわれますよね。例えば、 <script type="text/javascript"> <!-- alert("test"); //--> </script> と書いた場合、ページの表示と同時にアラートが出ます。しかし上のalertの部分をdocument.getElementById("test").innerHTML = "test";にすると、これが実行されないのです。もちろん<div id="test"></div>タグはちゃんとbodyタグ内に記述してあります。functionを定義してbody onLoadで呼び出す方法もありますが、できればfunctionをむやみに使いたくないので、先のalertの時のように動作させたいのです。 これが動作しない原因は何なのでしょうか?

  • 引数付きでイベントをセットしたい

    下のようにして引数を付けてイベントをセットしようとしたのですが、 どうも動作がうまくいってないようなのです。引数なし>Obj.onclick = check; ならちゃんと動作しました。どうすれば引数付きでセットできるのでしょうか? function check(text) { alert(text); } function sample() Obj = document.getElementById("sample"); Obj.onclick = check("メッセージ");

  • [prototype.js] Ajax.Requestの取得データをコールバック関数外で取得する方法

    下記のコードを実行すると、 'undefined' 'hello' と表示されます。 (A)の箇所でグローバル変数gTestに'hello'が格納されている事を期待するのですが、undefinedとなります。 どういった理由でこうなるのでしょうか? また、onCompleteで定義した処理内で、 値をグローバル変数に格納するにはどのような方法がありますか? 何卒よろしくお願い致します。 -- <script src="/js/prototype.js" type="text/javascript"></script> <script type="text/javascript"> var gTest; function load() { new Ajax.Request('http://~/', { method: 'get', onComplete: displayData }); alert(gTest); //(A)undefinedと表示 } function displayData(httpObj) { gTest = 'hello'; alert(gTest); //(B)helloと表示 } load(); </script> --

  • script要素をまたいだ関数定義と実行

    最近、javasriptを勉強しています。 わからない挙動があったので質問させてください。 htmlファイル内に、 <script type="text/javascript"> f(); function f(){ alert("hoge"); } </script> ↑これが動いて、 <script type="text/javascript"> f(); </script> <script type="text/javascript"> function f(){ alert("hoge"); } </script> ↑これが動かないのはどうしてなのでしょう? htmlの解析順序?の関係だと思うのですが、 詳しく解説しているページなどがあれば教えてください。

  • JS:関数の実行され方

    javascriptの関数の実行され方を教えてください。 知りたいのは以下のような時、上から順番に関数が実行されるが ある関数が完了しないうちにほかの関数の実行が始まるかどうかです。 hello1(); hello2(); hello3(); //---- function hello1(){ alert(hello); } function hello2(){ alert(hello); } function hello3(){ alert(hello); } 例えば上の例をそのまま実行すれば上から順番に実行されますが、 関数hello1が重たいループ処理をした場合 hello2とhello3はhello1が実行中に動いてしまいますか? ASでは動きませんでした。またphpも動かないみたいです。 また結果はブラウザによって変わるものなのでしょうか? ご教授ください。

  • javascript 初心者です 引数と変数について

    下記のスクリプトで○と×交互に表示されるようにしたいのですが、 hensu = !hensu;のところがうまく機能してくれません。 i = !i;だとうまくいくのですが、引数を使いたいです。 どのように記述すればよいのでしょうか? よろしくお願いします。 <html> <head> <script type="text/javascript"> <!-- i = true; function myFunc(hensu){ if(hensu){ alert("○"); } else{ alert("×"); } hensu = !hensu; } --> </script> </head> <body> <p onclick="myFunc(i)">[btn]</p> </body> </html>

  • javascriptの関数に引数を一個以上(不特定)渡したい

    javascriptの関数に引数を渡したいのですが、普通は値を渡す時、 function quotation(a,b) { alert(a+b); } <a href="#" onMouseover="quotation(12,13)">12+13</a> のようにすると思いますが、関数に値を渡す所の引数に「2個の値を渡す」とは決まっておらず例えば、4個値を渡すこともあれば、1個だけ値を渡すこともあるというプログラムを作りたいと考えています(必ず、1個以上の値を渡したいと思っております)。 このように、何個値を渡すか確定できていないときに柔軟に処理できるようにすることは、javascriptでは可能ですか?可能であれば、どのようにするのかやり方を教えてください。

  • forEachをIEで使う方法はありますか?

    下記のコードは、javascriptのforEachを使って、配列の要素に対して順に処理をしていくものです。 forEachはFirefoxやChromeには対応していてInternetExprolerでは対応していないところまでは 調べて分かったのですが、その対策が分かりませんでした。 InternetExprolerでも動かすためにはどのようにしたらよいのでしょうか。 <html lang="ja"> <head> <title>テスト</title> </head> <body> <script type="text/javascript"> function aaa() { var ary = ["1", "2", "3"]; ary.forEach(bbb); function bbb(ccc) { alert(ccc); } } aaa(); </script> </body> </html>