在JavaScript中,如何使用字符串参数访问对象上的函数?

时间:2015-10-10 19:12:13

标签: javascript

所以,例如,我有一个函数someObject.doSomething()&另一个函数someFunction(whatObject, whatFunction)。我希望能够像这样使用someFunction:someFunction('someObject', 'doSomething')并让它调用someObject.doSomething()

基本上我想要做的是将字符串传递给一个函数,然后可以使用这些字符串来调用其他函数。

3 个答案:

答案 0 :(得分:0)

所以你有两个对象,对象A&乙

A.doSomething = function(){...}
B.doSomethingElse = function(){...}

现在A to doSomethingElse,您可以使用调用

B.doSomethingElse.call(A);

这会将doSomethingElse的 this 更改为A的范围,这样就可以在A上应用 doSomethingElse 函数。

答案 1 :(得分:0)

使用此:

function doIt(obj, fn){ 
  (new Function(obj+"."+fn+"()"))();
};

var A = {b:function(){
  alert("test");
}}

doIt("A", "b");

答案 2 :(得分:-1)

您可以使用eval执行字符串作为代码。

function execute(objectName, objectFunction){
    eval(objectName + "." + objectFunction+"();");
}

execute("anotherObject", "doSomethingElse");

但请谨慎使用此命令,如果对象或函数不存在,则可能会抛出异常。