function
キーワードは、式の中で関数を定義するために使用されます。
構文
function [name]([param1[, param2[, ..., paramN]]]) { statements }
引数
name
- 関数名。省略可。省略した場合、関数は無名関数として認識されます。name は関数内でローカルです。
paramN
- 関数に渡される引数の名前です。
statements
- 関数の本体を構成するステートメントです。
説明
関数式は関数宣言とよく似ており、ほとんど同じ書式でもあります(※参照: function )。関数式と関数宣言の主な相違点は、関数名です。関数式では、匿名関数を生成するために、関数名を省略できます。 関数式は、定義するとすぐに実行する IIFE (即時実行関数)として使用できます。詳細については、 functions の章を見てください。
例
次の例では、引数の 2 乗を返す無名の関数を定義し、x
に割当てています。
var x = function(y) { return y * y; };
名前付き関数式
関数内でその関数自身を参照する必要がある場合は、名前付き関数式にする事でこれを実現できます。この名前は関数内(スコープ)のローカルです。非標準ではありますが、これは arguments.callee を用いて避けることもできます。
var math = { 'factorial': function factorial(n) { if (n <= 1) return 1; return n * factorial(n - 1); } };
仕様
仕様 | ステータス | コメント |
---|---|---|
ECMAScript 2017 Draft (ECMA-262) Function definitions の定義 |
ドラフト | |
ECMAScript 2015 (6th Edition, ECMA-262) Function definitions の定義 |
標準 | |
ECMAScript 5.1 (ECMA-262) Function definition の定義 |
標準 | |
ECMAScript 3rd Edition (ECMA-262) Function definition の定義 |
標準 | 初期定義。JavaScript 1.5 で実装。 |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |