JavaScriptの関数オブジェクトを完璧に理解する

白石俊平
2008/04/11 16:00

JavaScript関数の実体は、Functionクラスのオブジェクトです。今回はFunctionクラスの機能を網羅的に解説します。

lengthプロパティ

関数が受け取る仮引数の数を返します。

// 仮引数の数は2
function add(a, b) {
  return a + b;
}

// 「2」が表示される
alert(add.length);

Functionコンストラクタ

 関数オブジェクトを作成するには、これまで何度も使ってきたように、functionキーワードを用いるのが簡単です。hello()と言う関数を作成するには、以下のようにします。

function hello() { ... }

 これは、以下のコードと等価です(連載第三回参照)。

var hello = function() { ... }

 そして、関数オブジェクトを作成するもう一つの方法として、Functionクラスのコンストラクタを使用することもできます。

var hello = new Function("...");

 Functionコンストラクタは、以下のような定義になっています。

Function (p1, p2, … , pn, body)

 p1からpnまでは関数の仮引数、bodyは関数の本体を表しており、すべて文字列で指定します。例えば、引数を二つ取り、加算して返す関数addを作成するには以下のようにします。

var add = new Function("a", "b", "return a+b;");

 ちなみに、このコードは以下のように記述することもできます。

// new演算子を使わず、コンストラクタをそのまま呼び出すこともできる
var add = Function("a", "b", "return a+b;");

// 引数に注目!aとbが、カンマで区切られた一つの引数となっている
var add = new Function("a,b", "return a+b;");
記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
  • 新着記事
  • 人気記事
  • 特集
  • ブログ
  • 読者投票
    今、使っているマシンのOSは?

    投票受付期間:2008年6月27日 〜 2008年7月11日
  • » 投票しないで結果だけ見る