【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が参照渡しされます