関数の中で引数の値を変更しても、その変更はグローバルスコープもしくは呼び出し元の関数内には反映されません。キーワードは現在実行中の関数を参照しません。オブジェクトを参照しなければなりません。関数を定義する関数を定義するのにはいくつかの方法があります。文)関数を宣言するための特殊な構文があります。statements}name関数名。param関数に渡される引数の名前です。statements関数の本体を構成する文。関数式はより大きな式の一部になることもあります。「名前付き」の関数式を定義することもできます(例えばその名前はコールスタック内で使われるかもしれません)し、「無名の」関数式を定義することもできます。関数式はスコープの開始時に「巻き上げ」られないので、コード内でそれらが登場するより前に使用することはできません。statements}name関数名。省略する事ができ、その場合関数は無名関数と見なされます。param関数に渡される引数の名前です。statements関数の本体を構成する文。以下は無名の関数式(名前が使われていない)の例です。statements}名前付きの関数式を作るため、定義の中で名前を提供することも可能です。エラーに遭遇したとき、スタックトレースがその関数の名前を含めるため、エラーの発生源をより容易に特定できるということです。キーワードから開始されていません。開始せずに関数を含んでいる文が関数式です。statements})();即時関数は、関数を宣言した直後に実行する関数式です。statements}name関数名。param関数に渡される引数の名前です。statements関数の本体を構成する文。statements}name関数名。省略する事ができ、その場合関数は無名関数と見なされます。param関数に渡される引数の名前です。statements関数の本体を構成する文。expressionparam引数の名前。1個の場合のみ、丸括弧は必須ではありません。expression複数の文は中括弧で括らなければなりません。単一の式では、中括弧は必須ではありません。式は、関数の暗黙的な戻り値でもあります。コンストラクターによる関数の生成は推奨されません。エンジンによる最適化を妨げたり、他の問題を引き起こしたりする場合があるためです。オブジェクトを作成する事ができます。識別子に相当する文字列、もしくはそういった文字列のカンマで分割されたリストでなくてはなりません。呼び出しても、コンストラクタとして呼び出すのと同じ効果があります。コンストラクタによる関数の生成は推奨されません。エンジンによる最適化を妨げたり、他の問題を引き起こしたりする場合があるためです。オブジェクトを作成する事ができます。識別子に相当する文字列、もしくはそういった文字列のカンマで分割されたリストでなくてはなりません。