Javascript 将函数名作为参数传递给另一个不工作的函数
我有一个名为Javascript 将函数名作为参数传递给另一个不工作的函数,javascript,Javascript,我有一个名为myObject的类,它有多个方法,其中一个是add。我正在使用另一个带有参数的函数,我想使用myObject的哪个函数。如果我想使用add,我会传递它'add'。如果我想使用delete,我会传递它'delete',等等。在函数test的定义中,如果我使用obj.add它工作正常,但是如果我使用obj.func,传递的参数,它不工作。我测试以确保func=add,确实如此,但由于某些原因,它无法与参数一起工作。你知道我做错了什么吗 testObj = new myObject();
myObject
的类,它有多个方法,其中一个是add
。我正在使用另一个带有参数的函数,我想使用myObject
的哪个函数。如果我想使用add
,我会传递它'add'。如果我想使用delete
,我会传递它'delete',等等。在函数test
的定义中,如果我使用obj.add
它工作正常,但是如果我使用obj.func
,传递的参数,它不工作。我测试以确保func=add
,确实如此,但由于某些原因,它无法与参数一起工作。你知道我做错了什么吗
testObj = new myObject();
test(testObj, 'add', 3);
function test(obj, func, parm){
var answer = obj.func(parm);
}
因为对象在javascript中的工作方式
obj.func
将尝试在obj中运行名为func
的函数。但是,如果您记得javascript中的所有对象都是函数的话。然后您可以这样做:obj[func]
它将计算funct变量,并在obj中查找具有该计算名称的方法
testObj = new myObject();
test(testObj, 'add', 3);
function test(obj, func, parm){
var answer = obj[func](parm);
}
使用括号表示法
obj[func](参数)