Jquery 変数に関数名をセットして実行

作成日:2018-03-23, 更新日:2018-04-26

基本

変数に「()」をつければOK。

var hoge = function(str){
  alert(str);
}

var func = hoge;
func(〇〇〇);

上記だと、「hoge()」をすればいいので・・・全く意味がない。
ということで、下記のような感じ。

var func01 = function(){ alert(1); }
var func02 = function(){ alert(2); }
var func03 = '文字列'

var getFunc = function(funcName){
  var listFunc = {
    'func01': func01,
    'func02': func02,
    'func03': func03
  }
  
  if ( listFunc[funcName] != null ) {
    if(typeof listFunc[funcName]==="function"){
      return listFunc[funcName];
    }
    else {
      // 関数じゃないヤツ
      return false;
    }
  }
  else {
    return false;
  }
}

var chkForm = function(funcName){
  var func = getFunc(funcName);
  if ( func != false ) {
    func();
  }
  else {
    alert('関数じゃない or 未定義');
  }
}

var str = 'func03';
chkForm(str);

関連項目

PHP 変数に関数名をセットして実行