##はじめに
現在、JavaScriptの独学をしています。
復習を兼ねて、今回は関数についてまとめます。
私と同じようにJavaScript初心者の方の参考になればと思います。
##関数とは
関数とは、タスクや値計算を実行する文の集まりのことです。
JavaScriptでは、関数オブジェクトとも呼ばれ、オブジェクトの一種です。
そのため、他の値と同じように変数へ代入したり、関数の引数として渡すことが可能です。
以下のように定義します。
function 関数名 (仮引数) {
// 色々処理・・・
return 関数の返り値;
}
この定義方法以外にも、関数式で定義することもできます。
##関数式
関数式とは、関数を値として代入している式のことです。
// 関数式
const 関数名 = function() {
// 色々処理・・・
return 関数の返り値;
};
関数式では右辺の関数名を省略できます。
このような名前を持たない関数を匿名関数とも言います。
関数式には上記のfunctionキーワードを使った方法以外に、Arrow Functionと呼ばれる書き方もあります。
// Arrow Functionを使った関数定義
const 関数名 = () => {
// 色々処理・・・
return 関数の返す値;
};
##コールバック関数
JavaScriptでは、その場で作った匿名関数を関数の引数として渡すことができます。
引数として渡される関数のことをコールバック関数と呼びます。
また、コールバック関数を引数として使う関数やメソッドのことを高階関数と呼びます。
function 高階関数(コールバック関数) {
コールバック関数();
}
##メソッド
オブジェクトのプロパティである関数をメソッドと呼びます。
JavaScriptにおいて、関数とメソッドの機能的な違いはありません。
const obj = {
method1: function() {
// `function`キーワードでのメソッド
},
method2: () => {
// Arrow Functionでのメソッド
}
};
また、ES2015からは、メソッドとしてプロパティを定義するための短縮した書き方が追加されています。
オブジェクトリテラルの中で メソッド名(){ /メソッドの処理/ } と書くことができます。
const obj = {
method() {
return "this is method";
}
};