--- title: Function Object slug: conflicting/Web/JavaScript/Guide original_slug: Web/JavaScript/Guide/Obsolete_Pages/Predefined_Core_Objects/Function_Object ---
定義済みの Function
オブジェクトは、関数としてコンパイルさせたい JavaScript コードの文字列を指定します。
Function
オブジェクトを作成するには次のようにします。
functionObjectName = new Function ([arg1, arg2, ... argn], functionBody)
functionObjectName
は変数名または既存のオブジェクトのプロパティ名です。オブジェクトに小文字のイベントハンドラ名を続けて、window.onerror
のようにして指定することもできます。
arg1
, arg2
, ... argn
は関数が仮引数名として使用する引数です。それぞれが JavaScript の識別子として妥当な文字列である必要があります。例えば、"x" や "theForm" などです。
functionBody
は関数の本体としてコンパイルさせたい JavaScript コードを表す文字列です。
Function
オブジェクトはそれが使用されるたびに評価されます。これは関数を宣言し、それをコード内で呼び出す方法よりも非効率的です。宣言された関数はコンパイルされるからです。
ここで説明した関数の定義方法に加えて、function
文と関数式を用いることもできます。詳しくは コア JavaScript 1.5 リファレンス を参照してください。
次のコードは関数を変数 setBGColor
に代入します。この関数は開いている文書の背景色をセットします。
var setBGColor = new Function("document.bgColor='antiquewhite'")
Function
オブジェクトを呼び出すには、それがあたかも関数であるかのように変数名を指定すればいいのです。次のコードは setBGColor
変数で指定された関数を実行します。
var colorChoice="antiquewhite" if (colorChoice=="antiquewhite") {setBGColor()}
次のどちらかの方法を使用することでイベントハンドラに関数を代入することができます。
1. document.form1.colorButton.onclick=setBGColor 2. <INPUT NAME="colorButton" TYPE="button" VALUE="Change background color" onClick="setBGColor()">
上記の変数 setBGColor
を作成することは次の関数を宣言することと同じようなことです。
function setBGColor() { document.bgColor='antiquewhite' }
関数を変数に代入することは関数を宣言することと似ていますが、異なる点もあります。
var setBGColor = new Function("...")
のようにして関数を変数に代入すると、setBGColor
は new Function()
を用いて作成した関数への参照がその値であるような変数になります。function setBGColor() {...}
のようにして関数を作成すると、setBGColor
は変数ではなく関数の名前になります。関数を関数の中に入れ子にすることができます。内側の関数は外側の関数に対してプライベートになります。
{{ PreviousNext("Core_JavaScript_1.5_Guide:Predefined_Core_Objects:Date_Object", "Core_JavaScript_1.5_Guide:Predefined_Core_Objects:Math_Object") }}