最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

eval - How do I dynamically call a JavaScript object's method - Stack Overflow

programmeradmin5浏览0评论

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!

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!

Share Improve this question asked Feb 25, 2011 at 1:56 DavidDavid 1152 silver badges8 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 15

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).

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.

发布评论

评论列表(0)

  1. 暂无评论