0

私のapp.js中で私は次のような関数を定義しました:

var func1 = function(v1,v2,v3) {
  .
  .
}

var func2 = function(v1,v2,v3) {
  .
  .
}

私の中でcontroller.js

var action = "";

if(..) { action = 'func1';}
else {action = 'func2'}

action(a1,a2,a3);

ただし、アクションは関数ではないというエラーが表示されます。どうすればfunc1このように func2`` にアクセスできますか?

4

2 に答える 2

4

次のように、引用符を削除してみてください。

if(..) { action = 'func1';}
else {action = 'func2'}

if(..) { action = func1;}
else {action = func2;}

追加: の引用符を追加するときに、アクション変数に文字列を割り当てています。次のようにしfunc1て確認できます。

var func1 = function(v1,v2,v3) {
  alert("first");
};
var test_this = func1;
console.log( typeof test_this); //gives you function

一方

var test_this = 'func1'; //with quotes added
console.log( typeof test_this); //gives you string
于 2013-04-25T05:16:20.837 に答える
1

文字列から関数にアクセスしようとしています。私は専門家ではありませんが、試してみてください

if (..) {
    func1(a1, a2, a3);
} else {
    func2(a1, a2, a3);
}
于 2013-04-25T05:16:59.097 に答える