【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です。
便利ですね。