2

クリックしたメニュー項目を変数の値として返すコンテキスト メニューがあります。

var m = key;

変数は、私がプログラムしたものなら何でもかまいません。編集、切り取り、貼り付け、またはその他の必要なもの。

この変数を関数名として使用することはできますか? 例: function m() ここで、m は変数の内容です。

どんな提案でも大歓迎です。

ありがとう

クリス

4

3 に答える 3

9

必要な関数を含むオブジェクトを作成し、変数を使用して関数を呼び出すことができます。

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

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

http://jsfiddle.net/WVBNV/

于 2012-12-14T19:02:05.210 に答える
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

   }

}
于 2012-12-14T19:04:50.387 に答える
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);
​
于 2012-12-14T19:11:53.103 に答える