Core JavaScript 1.5 Reference:Global Objects:Function
出典: MDC
目次 |
[編集] 概要
JavaScript における関数の全ては、実際には Function オブジェクトです。
[編集] 構文
new Function ([arg1[, arg2[, ... argN]],] functionBody)
[編集] 引数
-
arg1, arg2, ... argN - 仮引数の名前として関数で用いるための名前。各々は、妥当な JavaScript の識別子と一致する文字列か、コンマで区切られたそのような文字列のリストでなければなりません。例えば、"
x"、"theValue" 、"a,b。
-
functionBody - 関数定義を形成する JavaScript の文を含む文字列。
[編集] 説明
Function コンストラクタで生成された Function オブジェクトは、それらが用いられる度に評価されます。これは、関数を宣言し、それをコード内で呼び出すよりも効果的ではありません。なぜなら、宣言された関数は、一度だけしか解析されないからです。
関数に渡された実引数の全ては、それらが渡された順番に、生成された関数内における仮引数の識別子の名前と同等に扱われます。
(new 演算子を用いずに)関数として、Function コンストラクタを実行することは、コンストラクタとして実行することと同じです。
[編集] プロパティ
Function インスタンスから継承されているプロパティについては、Function インスタンスの プロパティ を参照してください
- prototype
-
Functionオブジェクトの全ての拡張を可能にします。
Function.prototype から継承されるプロパティ
caller, constructor, length, name
[編集] メソッド
Function インスタンスから継承されているメソッドについては、Function インスタンスの メソッド を参照してください
Function オブジェクトは、自分自身のメソッドを持っていませんが、プロトタイプチェーンを通していくつかのメソッドを継承しています。
Object.prototype から継承されるメソッド
__defineGetter__, __defineSetter__, hasOwnProperty, isPrototypeOf, __lookupGetter__, __lookupSetter__, __noSuchMethod__, propertyIsEnumerable, unwatch, watch
[編集] Function インスタンス
Function オブジェクトの全ては、Function.prototype を継承します。Function.prototype オブジェクトへの変更は、Function インスタンスの全てに伝播します。
[編集] プロパティ
- arguments
- 非推奨
- 関数に渡した引数に一致する配列。これは、
Functionオブジェクトのプロパティとしては、非推奨です。代わりに関数内に用意されている arguments オブジェクトを使用してください。
- caller
- 非標準
- 現在実行している関数を呼び出した関数を返します。
- constructor
- オブジェクトのプロトタイプを生成する関数を指定します。
- length
- 関数によって期待される引数の数を指定します。
- name
- 非標準
- 関数の名前。
[編集] メソッド
- apply
- 別のオブジェクトのメソッドを異なるオブジェクト(呼び出すオブジェクト)のコンテキスト内において適用します。引数は、配列オブジェクトとして渡すことができます。
- call
- 別のオブジェクトのメソッドを異なるオブジェクト(呼び出すオブジェクト)のコンテキスト内において呼び出します(実行します)。引数は、指定するオブジェクトのものととして渡すことができます。
- toSource
- 非標準
- 関数のソースコードを表す文字列を返します。Object.toSource メソッドを上書きします。
- toString
- 関数のソースコードを表す文字列を返します。Object.toString メソッドを上書きします。
Object.prototype から継承されるメソッド
__defineGetter__, __defineSetter__, hasOwnProperty, isPrototypeOf, __lookupGetter__, __lookupSetter__, __noSuchMethod__, propertyIsEnumerable, unwatch, valueOf, watch
[編集] 例
[編集] 例: Function コンストラクタの引数を指定する
次のコードは、2 つの引数を受け取る Function オブジェクトを生成します。
var multiply = new Function("x", "y", "return x * y");
var theAnswer = multiply(7, 6);
引数 "x" と "y" は、"return x * y" という関数の中身において使用される仮引数の名前です。