How do I dynamically call a JavaScript object's method

折月煮酒 提交于 2019-11-27 16:43:43

问题


I think that I'm missing something very simple here. I want to pass a function an object and the method to call. The reasons why are too long for this post. :-)

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
}

Thank you!


回答1:


You need the parenthesis on the call, like this:

obj[funcName]();

You can get eval to work like this:

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

but there are many reasons not to do that (security, performance, harder debugging).




回答2:


When dealing with obj[funcName](); you have to take care of the instance of the object. if you want to use a private propetry form the object inside function call, it will use it as it was a static property.



来源:https://stackoverflow.com/questions/5112793/how-do-i-dynamically-call-a-javascript-objects-method

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!