【JavaScript】関数名を動的に設定して実行する

JavaScriptで、関数名を変数に格納して、実行する関数を動的に変更する方法を紹介します。

ソース

次にプレイヤーがとるべき行動として「Play」か「Study」のどちらかが格納される「NextAction」という変数があるとします。

//関数を格納する配列
var functionList = new Array();

functionList.Play = function(){
  alert("遊ぶ");
}

functionList.Study = function(){
  alert("勉強する");
}

//次にプレイヤーがとるべき行動が「Play」だとする
var NextAction = "Play";

//次の行動に応じた関数を実行する
functionList[NextAction]();

解説

まず、動的に実行させたい関数を配列に格納しておく必要があります。
ここではfunctionListという配列を宣言して、Play、Studyという2つの関数を格納しています。

配列に格納された関数を「配列名[関数名が格納されている変数]()」で呼び出すことができます。
引数がある場合でも通常の関数実行と同じように、()内に書いてあげればOKです。

便利ですね。

コメントする

メールアドレスが公開されることはありません。