在我的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``?
答案 0 :(得分: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
答案 1 :(得分:1)
您正尝试从字符串访问该函数。我不是专家,但你可以试试
if (..) {
func1(a1, a2, a3);
} else {
func2(a1, a2, a3);
}