小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

JavaScriptでの関数定義について

JavaScriptでの関数定義には、以下の3通りがあります。

  1. function文による関数定義
  2. 関数リテラルによる関数定義
  3. Functionコンストラクタによる関数定義

1は、昔ながらのC言語風の定義です。
2は、今時の無名関数と云われる定義です。
3は、実行時に最終引数の文字列ロジックが評価されるので、動的に処理を変えたい場合に用いられる定義です。

サンプル

<script type="text/javascript">
// 1のfunction文による関数定義
alert("add1="+add1(3,8));
function add1(x, y) {
	return x + y;
}

// 2の関数リテラルによる関数定義
var add2 = function(x, y) {
	return x + y;
};
alert("add2="+add2(3,8));

// 3のFunctionコンストラクタによる関数定義
var add3 = new Function("x", "y", "return x + y");
alert("add3="+add3(3,8));
</script>

補足

1は、関数実行前に関数定義が認識されます。
2と3は、実行時に関数定義が認識されます。
2と3の違いは、2はロジック記述がリテラルなのに対して、3は文字列になっています。


そういえば、2000年か2001年ごろ、同じような記事を書いているのを思いだしました。

しかし、ずーっとJavaScriptをやっていればよかったな、と後悔する日々です・・・。
また、一から出直しです!