我认为我在这里缺少一些非常简单的东西。我想传递一个函数一个对象和方法来调用。这篇文章的原因太长了。 : - )
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
}
谢谢!
答案 0 :(得分:15)
您需要在通话中使用括号,如下所示:
obj[funcName]();
你可以让eval像这样工作:
eval("obj." + funcName + "()");
但是有很多理由不这样做(security, performance, harder debugging)。
答案 1 :(得分:1)
处理obj[funcName]();
时,您必须处理对象的实例。如果你想在函数调用中使用私有propetry形式的对象,它将使用它,因为它是一个静态属性。