我有一个名为myObject
的类,它有多个方法,其中一个是add
。我正在使用另一个带有参数的函数,我希望使用myObject
的函数。如果我想使用add
,我会将其传递给“添加”。如果我想使用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);
}
答案 0 :(得分:2)
由于对象在javascript中的工作方式。 obj.func
将尝试在名为func
的obj中运行一个函数。但是,如果你记得javascript中的所有对象都是函数。然后你可以这样做:obj[func]
它将评估funct变量并在obj中查找具有该评估名称的方法。
testObj = new myObject();
test(testObj, 'add', 3);
function test(obj, func, parm){
var answer = obj[func](parm);
}