無名関数、無名コンストラクタ – JavaScript
2009年7月11日
JavaScript(Ajax)デビューしてから半年ほど経過した自分です。
JavaScriptって本当に柔軟な言語で、いろんな書き方できるから本当に面白いです。
今回は関数(function)についてちょっと書いてみます。
▼基本的なfunctionの書き方
JavaScript:
-
function ahya(arg){
-
return arg
-
}
-
ahya('moe'); //戻り値 'moe'
これが一般的なスタンダードなやつですね。
他にもこんな書き方ができます。
JavaScript:
-
var ahya = function(arg){
-
return arg;
-
}
-
ahya('moe');
あと、関数名を使わない無名関数(匿名関数)という書き方もできます。
JavaScript:
-
(function(){
-
return arg;
-
})('moe');
さらに、JavaScriptはオブジェクト指向言語なので、コンストラクタも使えます。
下記は無名コンストラクタです。
JavaScript:
-
new function(arg){
-
return arg
-
}('moe');
どれも返ってくる戻り値は同じですが、関数とコンストラクタでは決定的な違いがあります。
それは、thisが示すオブジェクトが違うということです。
▼詳しくはこちら
[JavaScript](function() {})()とnew function() {}の違い
といったように、JavaScriptはとても柔軟な言語なので、好みや状況に合わせていろんな書き方ができるということです。


