if - else if - else if else とかだと可読性が悪いし、switch文もcaseとbreak;を書くのが面倒だ。そんな人に薦めたいのがディスパッチテーブル!可読性に優れ、大規模な分岐で容量の節約にも繋がる…と言いたい所なんだけど…。
ディスパッチテーブルの書き方
連想配列のキーに分岐セット、処理をその値に書く。その連想配列のキーを指定して実行しているってだけ。var foo = 8; var fn = { 5 : function(){ alert('5です'); }, 8 : function(){ alert('8です'); } }[foo]();実際はただの連想配列
var foo = 8; var fn = { 5:function(){return '5です'}, 8:function(){return '8です'} } alert(fn[foo]()); // 実行をしなければ「function(){return '8です'}」の文字列がアラートされる。 alert(fn[foo]);switch文の変わりに使うと可読性が良い
//これと switch(foo){case(5): /*code*/ break;}; //これは同じ var fn={5:function(){ /*code*/ }}[foo]();詳しくは以下のURLをご覧ください。
http://designpepper.com/blog/drips/using-dispatch-tables-to-avoid-conditionals-in-javascript
だがしかし遅いらしい...
http://jsperf.com/dispatch-tables-vs-conditionalsifよりも遅いとは...つかSingle Internal functionなる物もあるのだね、すごいや