Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将函数名作为参数传递给另一个不工作的函数_Javascript - Fatal编程技术网

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](参数)