• ベストアンサー

引数が分かりません。

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>

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

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

こんにちは. 実行される順番に説明しますね. >onclick="showMessage('Hello JavaScript !');">         (3) 「showMessage」というファンクションに「'Hello JavaScript !'」という文字列を 渡して呼び出します. >function showMessage(message){                   (1) 呼び出されたファンクションは受け取った「'Hello JavaScript !'」という文字列を 「message」という入れ物(変数)に入れます. >window.alert(message);                     (2)                    アラートで,「message」という入れ物(変数)の中の文字列「'Hello JavaScript !'」 が 表示されます.

take2234
質問者

お礼

私の望んでいた、理想のご回答です。 これでスッカリ理解できました。 本当に、ありがとうございました。

その他の回答 (3)

  • Tattoko
  • ベストアンサー率17% (3/17)
回答No.4

 「引数そのものの意味もよく分かりません」を読み飛ばしてしまいました……。#1のかたのいうように、関数などの呼び出し時に渡す文字列などです。ちなみに「ひきすう」と読みます。  例えば、引数のない関数の場合 function showMessage(){  window.alert('Hello JavaScript !'); } として、 showMessage() で呼び出すことができますが、これでは「Hello JavaScript !」以外のメッセージには使えない関数になってしまいます。  しかし、 function showMessage(message){  window.alert(message); } として関数を定義しておけば、 showMessage('Hello JavaScript !') で「Hello JavaScript !」を表示させることができるだけでなく、 showMessage('Goodbye JavaScript !') で「Goodbye JavaScript !」と表示させることもできます。

take2234
質問者

お礼

引数についての詳細なご説明、ありがとうございます。 これで、引数の扱い方まで理解できました。 ありがとうございました。

  • Tattoko
  • ベストアンサー率17% (3/17)
回答No.2

function showMessage(message){  window.alert(message); }  まず1行目は、ここで定義するshowMesseageという関数は呼び出すときに1つ引数が必要でありその引数はmessageという変数に格納されますよ、ということです。ですから2行目で、指定された引数(変数messageに格納されている)がアラートとして表示されます。  そして、 showMessage('Hello JavaScript !') は、'Hello JavaScript !'を引数として関数showMessageを呼び出すという意味です。

take2234
質問者

お礼

ご回答、ありがとうございます。 ご回答頂いた皆様方の内容を熟読して、理解させていただきました。

  • 7623goo
  • ベストアンサー率46% (34/73)
回答No.1

こんにちわ。 引数とはファンクションなどに渡す数字や文字列などのことです。 ファンクションとはfunctionで始まって}で終わるスクリプトのまとまりのことです。 ご質問のスクリプトの動作は、 ボタンをクリックした際、shoMessageというファンクションが呼ばれ 引数として'Hello JavaScript!'という文字列が送られます。--(3) 呼ばれたファンクションでは引数をmessageとして受け取ります。--(1) そのファンクション内でalert表示する文字列としてmessageを利用します。--(2) こんな説明でわかりますか。

take2234
質問者

お礼

ご回答ありがとうございます。 引数に付いては、分かりました。 「message」等に付きましては、あとの方のご回答を参考にして、理解させて頂きました。

関連するQ&A

  • javascriptを2つ使うと1つの動きしかしません。

    初心者です。ホームページを作っています。 以下のように記述してjavascriptで2つの動きをしたいのですが1つしか動きません。scriptをべつのファイルにしたのですが動かないのですが。どう記述したらいいのでしょうか? よろしくお願いします。 <html> <title></title> <head> <script language="javascript" src="test.js"></script> </head> <center> <body text="#000000" onLoad="timer1=setTimeout('fadein(0,100)',100)"> <br><br> <font size="8" color="green">ようこそマイホームページへ</font><br><br> <img src="top.jpg"><br><br> <a href="top.html"> <img src="main.jpg"></a> <form action="top.html"> </form> <script language="javascript" src="common.js"> </script> <a href="javascript:void(post())">3秒後に遷移します。画面が変わらない場合はクリックしてください</a> </center> </body> </html>

  • 別なページにジャンプさせたい

    ボタンをクリックすると指定のページに飛ぶようにしたいのですが、 <html> <head> <script language="JavaScript"> function jump(){ location.href="index.html"; } </script> </head> <body> <form onSubmit="jump()"> <input type="submit"> </form> </body> </html> でも <html> <head> <script language="JavaScript"> function jump(){ location.href="index.html"; } </script> </head> <body> <form> <input type="submit" onClick="jump()"> </form> </body> </html> でも動きません。(そのページを表示したままです) <body onload="jump()">にしたときは正常にジャンプできるので、クリックのイベントが拾えていないと思うのですが、どのように記述すればいいのでしょうか。 よろしくお願いいたします。

  • <HTML>文章をメモ帳に書いてブラウザに変えても変わって表示されません。

    <html> <head>               <title>プログラム例</title>  </head>                   <body> <script type="text/javascript"> docment.write("<hr>"); docment.write("<h1>hello<h1>"); docment.write("<hr>"); </script> </script> </body> </html> これをメモ帳に書いてブラウザに切り替えるとhelloってブラウザ上に出るのですが、全然まったく変わりません。 そのまんまの通りに出てしまいます。 なんでこうなってしまうのかわかりません。どうが教えてください

  • 改行コード変換しても、引数の受け渡しが出来ない。

    coldfusion と Javascript を組み合わせて、プログラムを書いています。 下記のプログラムは、 データベースからテキストを呼びだし(result.Message)、 その呼び出したテキストの中に、改行コードがあれば<br />に変換しています。 変換したテキストを引数にし、Javascript関数send_messageを呼び出しています。 問題は、ここから、 result.Message の中に元々改行が無ければ、alertウィンドウが出力されるのに 改行が含まれていると、alert ウィンドウが出力されません。 改行コードを<br />に変換しているのにも関わらずです。 この現象は、何が原因なのでしょうか。 解決方法を教えていただきたく、お願いいたします。 <cfprocessingdirective pageencoding="Shift-JIS"> <html> <head> <script language="JavaScript"> <!-- function send_message(message){ alert(message); } </script> </head> <body> <form name="BBS_form" method="post" action="send_message.cfm" enctype="multipart/form-data"> <cfinvoke component="bbs" method="ShowMessages" returnvariable="result"> </cfinvoke> <cfoutput query = "result" > <!--- 改行コードを<br> に変換 ---><!--- result.Message は、text型 ---> <cfset change_mes = Replace(result.Message, Chr(13), "<br />", "all")> <!--- 改行コードを変換しているのに、ボタンを押しても、alert ウィンドウが出力されない。---> <input type="button" name="test" value="テスト" onClick="return send_message('#change_mes#');"> </cfoutput> </body> </html>

  • 外部ファイルにするとテキストが書き込めない

    こんにちは、javascript初心者です。 HTMLのtextarea内のテキストを変えたいのですが、HTMLにJSを埋め込むと動作するのですが、外部JSファイル読み込みだとなぜか何も表示されません。 なぜでしょうか。原因のわかる方、説明をどうかよろしくお願い致します。 ●HTML <head> <script src="test.js" type="text/javascript"></script> </head> <body> <form name="form1"> <textarea name="message" id="msg" rows="5" cols ="50"></textarea> </form> </body> ●JS window.onload = message(); function message(){ alert("hello");              //←これはちゃんと動作します。 document.getElementById("msg").value="hello"; //← 動作せず。 document.form1.message.value="hello"; //← これも上と同じく片方ずつ試しましたが、ダメでした。 }

  • 動的にイベントハンドラ生成する際に引数がある関数を作る

    お世話になっています、ご質問があります。 以下の場合 --hogeA.html-- <html> <head> <script type="text/javascript" src="./**/hogeB.js"></script> </head> <body onload="javascript:hoge.init()"> <input type="text" name="hogehoge" value=""> </dody> </html> --hogeB.js-- hoge = { init : function(){ var BodyElement = document.getElementsByTagName('INPUT'); BodyElement.onBlur = this.setOnBlurAction; }, setOnBlurAction : function(value){ ****(省略)**** } } 上記の場合に、onBlurイベントハンドラ関数を生成し、 画面上でonBlurイベント時にsetOnBlurActionを実行させる予定です。 引数のある関数の場合、動的にイベントハンドラ関数を生成する際はBodyElement.onBlur = this.setOnBlurAction; では駄目な気が致しますが、どうすれば良いでしょうか。 どなたかご教授願います。

  • 自分のIEでは計算が行われません。

    昨日も質問させてもらったのですが、また困ったことが起きました。 下のHTMLをIEで表示させてみたのですが、友人の環境ではコンボボックスの数字を変えることによって計算されるのですが、私の環境では計算が行われません。 何が原因なのでしょうか? <html> <head> <title> プログラミング基礎 </title> <script language ="JavaScript"> <!-- function calc(amount){ document.mugcup.total.value = 498 * eval(amount); }//--> </script> </head> <body> <form name=mugcup> マグカップ(1個 税込498円:お一人様限定5個まで)<br> <hr> 個数: <select name ="num" onchange = "javascript:calc(this.value)"> <option value =0>0 <option value =1>1 <option value =2>2 <option value =3>3 <option value =4>4 <option value =5>5 </select> 小計: <input type="text" size="8" name="total">円<br> <hr> </form> </body> </html>

  • テキストボックスがうまく表示できない

    submitをクリックした時、'フリガナ'部分はうまく表示できるのですが'document.frmInfo.kana.value'が表示できないので困ってます。 宜しくお願いします。 <SCRIPT LANGUAGE="JavaScript"> <!--- function mopen(){ var win; win=window.open("","_self"); win.document.open(); win.document.write("<html><head><title></title></head>"); win.document.write("<body bgcolor='#ffffff'>"); win.document.write("<center><br><B>お申し込みありがとうございました。<br><br>メールの内容は下記の通りです。</b><br><br><br></center>") win.document.write("<a href='seminar_1.htm' target='_self'>戻る</a>"); win.document.write("<hr>"); win.document.write("フリガナ:".bold()); win.document.write(document.frmInfo.kana.value); win.document.write("<br><br>"); win.document.write("</body>"); win.document.write("</html>"); return true; } //---> </SCRIPT> <FORM ACTION="mailto:**@***.com" METHOD="POST" ENCTYPE="multipart/form-data" NAME="frmInfo" onSubmit="return mopen()">

  • 同名ボタンのクリック時要素番号の取得方法

    <html> <head> <script Language="JavaScript"><!-- function doSentaku(btn) { //クリックされたボタンの要素番号が知りたい alert(btn.name); } // --></script> </head> <body> <form name="mainWin"> <input type="button" value="配列ボタンテスト1" name="testbtn" onClick="javaScript:doSentaku(this)"><br> <input type="button" value="配列ボタンテスト2" name="testbtn" onClick="javaScript:doSentaku(this)"><br> <input type="button" value="配列ボタンテスト3" name="testbtn" onClick="javaScript:doSentaku(this)"><br> </form> </body> </html> ----------------------------------------------------------------------------------------- このようなFromがあった場合、nameが同じである時、javaScriptではボタンのElemetは配列扱いになるかと思うのですが、doSentaku関数内ではnameは取得できるとして、クリックされた要素番号は取得できるのでしょうか? なお、訳ありでdoSentaku関数のボタンonClickの関数引数はすべて同じ定義しかできないものとします。 つまり個々ボタンを識別する値は指定できないと言うことです。 まことに申し訳ありませんが、どうかアドバイスのほどよろしくお願いします。

  • form nameをform actionにしたいんですが・・・

    <html> <head> <title> 商品確認 </title> <script language ="JavaScript"> <!-- function calc(amount){ document.ball.total.value = 4095 * eval(amount); }//--> </script> </head> <body> <form name=ball method="post"> //←ここをform action="x.php"にしたい。 V4SLBL ソフトタッチ鈴入り4号球<br> <hr> 個数: <select name ="num" onchange = "javascript:calc(this.value)"> <option value =0>0 <option value =1>1 <option value =2>2 <option value =3>3 <option value =4>4 <option value =5>5 </select> 小計: <input type="text" size="8" name="total">円<br> <hr> </form> </body> </html> 上の場所をaction="x.php"にしてx.phpに小計を送ろうとしています。 しかし、actionにすると小計が表示されなくなります。 いろいろ考えましたが全く答えが出てきません。 アドバイスよろしくお願いします。