JavaScript

呼び出し式

 呼び出し式は、JavaScript において、関数やメソッドを呼び出す(実行する)ための構文です。まず、呼び出される関数を指定するための関数式を記述します。この関数式の後に、開き丸括弧を記述し、カンマで区切って 0個以上の引数式を記述し、最後に閉じ丸括弧を記述します。例をいくつか示します。

f(0)
// f は関数式、0 は引数式。

Math.max(x,y,z)
// Math.max は関数、x、y、z は引数。

a. sort()
// a.sort は関数、引数はない。

 呼び出し式が評価されるときは、まず関数式が評価され、続いて引数式が評価され、引数の値のリストが生成されます。関数式の値が、呼び出し可能なオブジェクトにならない場合は、TypeError 例外がスローされます(すべての関数は呼び出し可能です。ホストオブジェクトの一部は、関数でなくても呼び出し可能な場合があります)。続いて、引数値が、関数定義時に指定された仮引数に代入されていきます。関数は、return 文を使うことで値を返すことができます。この値が、呼び出し式の値となります。return 文がない場合には、呼び出し式の値は undefined になります。

 呼び出し式は、一対の丸括弧と、開き丸括弧の前の式から構成されます。この式がプロパティアクセス式の場合には、メソッド呼び出しになります。メソッド呼び出しの場合は、プロパティアクセスの対象となるオブジェクトや配列が this 引数の値となります。そして、この this の値を関数本体で利用できるようになります。このような機構により、オブジェクト指向プログラミング風に、関数(オブジェクト指向的には「メソッド」)からオブジェクトを操作できるようになります。

 メソッド呼び出しではない呼び出し式の場合は、this キーワードの値として使われるのは一般的にはグローバルオブジェクトです。しかし、ECMAScript 5 では、strict モードで定義された関数については、this の値はグローバルオブジェクトではなく undefined になります。