はじめに
javascriptの即時実行は結構使いますが、パターンがいくつかあるので整理のためのおさらいメモです
まずは関数の宣言方法についておさらい
関数の宣言方法(呼び方の種類について)
/* 1.コンストラクタ関数 */ var func = new Function(); /* 2.関数宣言(function文) */ function f(){}; /* 3.関数式 */ var func = function(){}; /* 4.関数名指定関数式 */ var func = funciton func (){}; /* 5.無名関数 */ function(){}
この中で、2,3,5についての即時実行パターンをおさらい
即時実行パターン
/* * 2.関数宣言(function文)の即時実行 */ !function func() {console.log('function sentence');}(); // これだとNG : Uncaught SyntaxError //function func() {console.log('function sentence');}(); /* * 3.関数式の即時実行 */ var func = function() {console.log('function expression');}(); /* * 5.無名関数の即時実行 */ // 一番良く使うやつですね (function() { console.log('anonymous func 1'); })(); // カッコでくくって文にすればOK的な? (function(msg) { console.log('anonymous func 2') }());
!をつけたり()でかこったりだとOKってことで、
文や式にしてしまえばOK的な理解ですかね。
以前書いた「javascriptのevalでエラったら。。。evalが意図したとおり動かない理由」に似てますね。
ふむふむ。
この記事で参考にした書籍
開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質
posted with amazlet at 14.05.08
Cody Lindley
オライリージャパン
売り上げランキング: 11,609
オライリージャパン
売り上げランキング: 11,609