無名関数、無名コンストラクタ – JavaScript

2009年7月11日

Filed under: JavaScript — admin @ 3:57 AM

JavaScript(Ajax)デビューしてから半年ほど経過した自分です。
JavaScriptって本当に柔軟な言語で、いろんな書き方できるから本当に面白いです。

今回は関数(function)についてちょっと書いてみます。

▼基本的なfunctionの書き方

JavaScript:
  1. function ahya(arg){
  2.     return arg
  3. }
  4. ahya('moe');    //戻り値 'moe'

これが一般的なスタンダードなやつですね。

他にもこんな書き方ができます。

JavaScript:
  1. var ahya = function(arg){
  2.     return arg;
  3. }
  4. ahya('moe');

あと、関数名を使わない無名関数(匿名関数)という書き方もできます。

JavaScript:
  1. (function(){
  2.     return arg;
  3. })('moe');

さらに、JavaScriptはオブジェクト指向言語なので、コンストラクタも使えます。
下記は無名コンストラクタです。

JavaScript:
  1. new function(arg){
  2.     return arg
  3. }('moe');

どれも返ってくる戻り値は同じですが、関数とコンストラクタでは決定的な違いがあります。
それは、thisが示すオブジェクトが違うということです。

▼詳しくはこちら
[JavaScript](function() {})()とnew function() {}の違い

といったように、JavaScriptはとても柔軟な言語なので、好みや状況に合わせていろんな書き方ができるということです。

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。

コメントする