JavaScriptの関数
そこいらの言語と違って色々な書き方がある?javascriptの関数を整理。
- function命令で定義
- Functionコンストラクタ経由で定義
- 関数リテラル表現で定義
function命令で定義
オーソドックスなやつ。
function 関数名(引数){
関数内で実行される処理
}
//example
function sum(x,y) {
var r = x + y;
return r;
}
document.writeln('sum:' + sum(3,5)); //8
Functionコンストラクタ経由で定義
var 変数名 = new Function(引数,関数本体);
//example
var sum = new Function("x","y","var r = x + y; return r;");
document.writeln('sum:' + sum(3,5)); //8
これは何をしているかというと
FunctionオブジェクトというものがJavaScriptの組み込みオブジェクトであるので、
それを利用している。
つまりFunctionオブジェクトのコンストラクタを利用して関数を定義することができる。
関数リテラル表現で定義
javascriptでは関数を変数に代入したり、ある関数の引数として渡すことができる。
よって以下のような記述が可能。
var 変数名 = function(引数){
関数内で実行される処理
}
//example
var sum = function(x,y){
return x+y;
};
document.writeln('sum:' + sum(3,5)); //8
この場合function(x,y)と名前がない関数を定義しているので
匿名関数、あるいは無名関数と呼ぶ。