
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なる物もあるのだね、すごいや