関数定義
関数定義の巻き上げ
メモ
- 下記の方法で関数定義
- function 宣言
- function 式
- 明示的なFunction【関数】オブジェクトの生成 (通常は未使用)
- 全てFunction【関数】オブジェクトを生成
- function 宣言の場合、関数定義は巻き上げ (関数定義が、関数参照の後でも可)
構文
構文 | 説明 |
---|---|
function 関数名 ( [ 可変長引数 ] ) { [ 処理コード ] } | function 宣言 |
function [ 関数名 ] ( [ 可変長引数 ] ) { [ 処理コード ] } | function 式 関数名を省略すると無名関数 関数名は再帰関数で使用 |
[new] Function ( [ 可変長引数文字列 , ] 処理コード文字列 ) | 明示的なFunction【関数】オブジェクトの生成 通常は未使用 |
例
// function 宣言
function func1(x, y) {
return (x + y);
}
console.log(func1(1, 2)); // 出力:3
// function 式
var func2 = function (x, y) {
return (x + y);
}
console.log(func2(1, 2)); // 出力:3
// 明示的なFunction【関数】オブジェクトの生成
var func3 = new Function("x", "y", "return (x + y);");
console.log(func3(1, 2)); // 出力:3
// 関数定義の巻き上げ
console.log(func(1, 2)); // 出力:3
function func(x, y) { // 関数定義が、関数参照の後
return (x + y);
}
/**
* 関数を返却
* @return 関数
*/
function getFunc() {
/**
* 内部関数
* @global
* @param {number} p1
* @return {number} 二乗
*/
function innerFunc(p1) {
console.log(p1 * p1);
}
return innerFunc;
}
/**
* 関数の説明
* @function
*/
var func = getFunc();
func(2); // 出力:4
func(3); // 出力:9
関連
外部リンク (英語)
Function Definitions | ||
---|---|---|
ES2024 (15) | ES2023 (14) | ES2022 (13) |
Function Objects | ||
ES2024 (15) | ES2023 (14) | ES2022 (13) |