JavaScriptのディスパッチテーブル


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-conditionals
ifよりも遅いとは...つかSingle Internal functionなる物もあるのだね、すごいや
Related Posts Plugin for WordPress, Blogger...