他の言語では「関数テーブル」という手法が使われますよね?
http://www.c-lang.org/pointer_function.html
「if文やswitch文の条件分岐等をなくしプログラムを簡素化する」というメリットがあります。
ifやswitchだと行数が多くなります。
switch (data) {
case 0: func(); break;
case 1: func1(); break;
case 2: func2(); break;
case 3: func3(); break;
case 4: func4(); break;
default: func4(); break;
}
関数テーブルだと2行です
var funcs = [func, func1, func2, func3, func4];
funcs2;
しかし、JavaScript界隈では「関数テーブル」という題の記事を見かけません。
類似の関数をまとめておいて引数で呼び出し対象を変えるのは便利だと思いますが。
何かデメリットがあるのでしょうか?遅いとか。
※調べた限りでは、このサイトでディスパッチテーブルの一文がありますが
https://qiita.com/hirokidaichi/items/c9a76191216f3cc6c4b2
ループ外では一般的に使われるものではないのでしょうか?
(引数で分岐させるなど他の手法の方が良いですか?)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/11 23:31
2019/10/11 23:48