目次

JavaScript 関数の定義

y2sunlight 2021-04-05

関数の定義

以下による定義方法がある。


function文

function 関数名(引数, ・・・) {
    // 本体
    return 戻り値;
}

console.log(getArea(10, 20));    // 結果:200
function getArea(height, width) {
    return height * width;
}

Functionコンストラクタ

var 変数名 = new Function(引数, ・・・, 関数本体);

var func1 = new Function('height', 'width', 'return height * width');
var func2 = new Function('height, width', 'return height * width');
// どちらの形式でも良い
console.log(func1(10, 20));  // 結果:200
console.log(func2(10, 20));  // 結果:200

関数リテラル

var 変数名 = function(引数, ・・・) {
    // 関数本体
    return 戻り値;
};

var func = function(height, width) {
    return height * width;
};
console.log(func(10, 20));  // 結果:200

関数リテラルは、無名関数又は匿名関数とも呼ばれる。

アロー関数

*2015

var 変数名 = (引数, ・・・) => {
    // 関数本体
    return 戻り値;
};

var func = (height, width) => {
    return height * widht;
};
console.log(func(10, 20));

var area = r => Math.PI * r * r;
console.log(area(10));

var sayHello = () => console.log('Hello');
sayHello();

第1級オブジェクト

JavaScriptの関数は第1級オブジェクトである。

function func1(height, width){return height * width}
        
var func2 = new Function('height, width', 'return height * width');
var func3 = function(height, width){ return height * width };
var func4 = (height, width) => { return height * width };
        
function callFunc(height, width, func){
    console.log(func(height, width));
}
        
callFunc(1, 10, func1);  // 結果:10
callFunc(2, 10, func2);  // 結果:20
callFunc(3, 10, func3);  // 結果:30
callFunc(4, 10, func4);  // 結果:40