基于函数参数动态调用javascript函数

时间:2015-05-19 03:47:11

标签: javascript jquery javascript-events underscore.js

我有一个jquery函数,根据我应该调用另一个jquery函数的参数接受几个参数。

        ex)arg0 = "Launch"
           arg1 = "menu"
ex)
 (function($)
 {
    preRender: function(arg0,arg1)
    {
        var nextFuncName = arg0+arg1; //launchmenu
        nextFuncName() // hope to call the function name framed from the number of arguments
     }
})(jQuery);

 (function($)
 {
    launchmenu: function()
     {
       console.log("Launchmenu called");
     }
})(jQuery);

我提到了以下链接calling a jQuery function named in a variable,但我不想使用eval()或window对象。

是否可以使用$ .proxy或任何其他方法来实现此功能。还可以使用underscore.js实现此目的吗?

任何帮助都应该是值得注意的..

1 个答案:

答案 0 :(得分:2)

尝试使用jQuery对象

  

......或者更好的自己的本地对象,而不是污染全局   jQuery命名空间。

  

合并它们,以便localObject使用launchmenu$使用preRender

(function($) {

  var localObject = {};

  function launchmenu() {
    console.log("Launchmenu called")
  }

  function preRender(arg0, arg1) {
    var nextFuncName = arg0 + arg1;
    if (nextFuncName in localObject) {
      localObject[nextFuncName]()
    } else {
      console.log(typeof nextFuncName)
    }
  }


  localObject.launchmenu = launchmenu;
  $.preRender = preRender;
  
}(jQuery));

$(function() {
  $.preRender("launch", "menu");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>