JavaScriptにおける即時関数呼び出し
ここでは、関数をその宣言した場所で直接呼び出すテクニックを解説します。 この構造はImmediately Invoked Function Expression (IIFE)と呼ばれます。
例を見てみましょう。以下のような関数式があるとします:
let func = function() {
console.log('!');
};
func(); // '!'を出力
では、この関数を変数に代入せず、その場ですぐに「呼び出し」てみましょう。 そのためには、関数の後に括弧を置きます:
+function() {
console.log('!'); // '!'を出力
}();
この場合のプラス記号は必須条件です。 なぜなら、それがないと関数はFunction Declaration(関数宣言)となり、 それらを(名前もなく)その場で呼び出すことはできないからです。 もちろん、プラスの代わりに任意のものを使用できます - 重要なのは、私たちの関数が関数式であることです。
コードを実行せずに、コンソールに何が出力されるかを判断してください:
!function() {
console.log('!');
}();
コードを実行せずに、コンソールに何が出力されるかを判断してください:
function() {
console.log('!');
}();