同じコードを使用することが多い古いコードをクリーンアップして最適化したい。(呼び出す関数の名前が異なるだけです)
私はより簡単な例を作ります。いいえ、私はゲームについて書いていません。しかし、この例は、私の問題を説明するのにより理解しやすいように見えます。
character.sleep(1);
character.changeName(name);
character.useItm(1423);
より簡単な例:
object.function(parameters)
ターゲットは次のようなものでした:
myFunc(funcName,value) {
character.{funcName}(value);
}
$('.btn_sleep') { myfunc('sleep','1'); }
$('.btn_cName') { myfunc('changeName','Harold'); }
$('.btn_uItem') { myfunc('useItem','1423'); }
最初に eval() を使用することを考えました。これは、ユーザー入力がこの関数に近づかないためです。しかし、パフォーマンスが失われるため、この考えは嫌いです。
次に、代替案を探し回り、解決策としてwindow[]とnew function()を見つけました。
しかし、オブジェクト表記で名前で関数を動的に呼び出したい場合、それを使用する方法がわかりません。(または、さらに悪いケースでは、オブジェクト表記で呼び出した関数から if-condtion の結果を取得する必要がある場合。)
誰でも助けてもらえますか?