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

白石俊平(あゆた)
2008-04-11 16:00:00
  • このエントリーをはてなブックマークに追加

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;");
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]