是否可以将变量用作函数名称

时间:2012-12-14 18:58:44

标签: javascript variables contextmenu var

我有一个上下文菜单,返回单击作为变量值的菜单项,如下所示。

var m = key;

变量可以是我编程的任何东西,例如;编辑,剪切,粘贴或其他任何我想要的东西。

是否可以将此变量用作函数名称? 例如:function m()其中m可以是变量的内容。

任何建议都将不胜感激。

由于

克里斯

3 个答案:

答案 0 :(得分:9)

您可以使用所需的函数创建一个对象,然后使用该变量调用函数:

var funcs = {
   "cut": function(){
      console.log("Cutting");
    },
    "paste": function(){
      console.log("Pasting");
    }
};

var m = "cut";
funcs[m]();

http://jsfiddle.net/WVBNV/

答案 1 :(得分:0)

当然可以!

var onComplete = fadeOut;

function fadeOut(){
   $(this).animate({
      opacity: "0"
   },400);
}

巧合的是,您也可以使用这种方式伪造类。

function myClass(){
    this.publicVar = "" //<-- this is a public var
    var privateVar = ""; //<-- this is private

   this.myPublicMethod = myPublicMethod;

   function myPublicMethod(){ // <-- public because of the line above

   } 

   function _myPrivateMethod(){ // <-- if just this it's private

   }

}

答案 2 :(得分:0)

另一种方式

function my_generic_function(m) {
    switch (m) {
    case "cut":
        console.log("cutting");
        break;
    case "copy":
        console.log("copying");
        break;
    default:
        return false;

    }
}

var m = "cut";
my_generic_function(m);

var m = "copy";
my_generic_function(m);
​