【JavaScript】関数の定義
関数の定義
関数を独自に作るには、次のように定義します。
function 関数(仮引数){ //仮引数:関数のなかでは実引数で指定した値になります -- 関数化したいものを記述します -- } 関数(実引数) //実引数:関数を呼び出すときに使います
関数の呼び出し
実際にfunction文を使ってスクリプトを関数化してみます。
<?xml version="1.0" encoding="utf-8" ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>関数の定義</title> </head> <body> <p>関数の定義</p> <script type="text/javascript"> //関数を定義します function uniteMessage(Msg1,Msg2){ alert(Msg1 + Msg2); alert("これでメッセージは終了です。"); } //関数を呼び出します uniteMessage("こんにちは、","JavaScript"); /* * 実行結果: * こんにちは、JavaScript * これでメッセージは終了です。 */ </script> </body> </html>
return文
文字列、数値、オブジェクトをreturn文の後に指定すると、関数の呼び出し元に値を返すことができます。
<?xml version="1.0" encoding="utf-8" ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>関数の定義</title> </head> <body> <h2>関数の定義</h2> <script type="text/javascript"> //関数を定義します function calc(a,b){ var c = a + b; //変数cはvar宣言されているのでローカル変数です。この関数内でのみ参照可能です。 return c; //return文:関数の処理を終了し、呼び出し元の処理を続けます } //関数を呼び出します total = calc(5,3); alert(total); /* * 実行結果: * 8 */ </script> </body> </html>
値渡しと参照渡し
オブジェクト以外の値を引数として渡すときは、値渡しという方法で受渡されます。関数の内部で引数の値を変更しても、関数外では値は変化しません。
//関数を定義します function getMenu(a){ a = "Coffee"; } //関数を呼び出します b = "Tea"; menu = getMenu(b); //bが値渡しされます
オブジェクトを引数として渡すときは、参照渡しという方法で受渡されます。関数内部で値を変更すると、関数外でも値が変化します。
//関数を定義します function getMenu(a){ a[0] = 'Water'; //最初の要素に'Water'を代入 } //関数を呼び出します b = new array('Tea','Coffee'); //arrayオブジェクトを作成 getMenu(b); //bが参照渡しされます