即時関数とは
即時関数は、定義と同時に実⾏される関数。スコープを汚染しないために使⽤する。
※スコープとは変数や関数がどこから参照できるかを決定する範囲のこと。詳細は別ページ記載。
即時関数はページの初期化、機能判定、プライベートプロパティ/メソッドの定義が可能。
javasprictにはアクセス修飾子がないからこれを使うとプライベートなメソッドやプロパティが定義できる。
処理が再利用されないのであれば、即時関数を使うべき!
・名前付き関数:再利用を前提とした一連の処理を定義する
・即時関数:再利用されない一連の処理を新たなスコープで包み込む
予期せぬトラブルが後で起きるかもしれないから、なるべく変数の有効範囲は狭めるべき。
基本的な書き方
(function () {
//処理
}());
(function (param1, param2) {
//処理
}('hoge', 'fuga'));
関数宣言を使って2つの数を引数にとり、その和を返す関数addを作った。
function add(a,b){
return a + b;
}
console.log(add(3,5));//3+5で8がコンソールに表示される。
この関数addを関数宣言で宣言すると下記になる。
(function add(a,b){
return a + b;
}
)(console.log(add(3,5)));