如何动态调用JavaScript对象的方法

时间:2011-02-25 01:56:18

标签: javascript eval

我认为我在这里缺少一些非常简单的东西。我想传递一个函数一个对象和方法来调用。这篇文章的原因太长了。 : - )

var myObj = new someObject();
var funcName = "hide";

function callObject(myObj,funcName){
    obj.hide(); //this works     
    obj[funcName]; //doesn't work
    obj.eval(funcName); //doesn't work either.. tried many variations
}

谢谢!

2 个答案:

答案 0 :(得分:15)

您需要在通话中使用括号,如下所示:

obj[funcName]();

你可以让eval像这样工作:

eval("obj." + funcName + "()");

但是有很多理由不这样做(security, performance, harder debugging)。

答案 1 :(得分:1)

处理obj[funcName]();时,您必须处理对象的实例。如果你想在函数调用中使用私有propetry形式的对象,它将使用它,因为它是一个静态属性。