Как динамически вызывать метод объекта JavaScript

Я думаю, что мне не хватает чего-то очень простого. Я хочу передать функции объект и метод для вызова. Причины, почему слишком долго для этого поста. :-)

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 ответов


вам нужна скобка на вызове, например:

obj[funcName]();

вы можете заставить eval работать так:

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

но есть много причин не делать этого (безопасность, производительность, более жесткая отладка).


при общении с obj[funcName](); вы должны позаботиться об экземпляре объекта. если вы хотите использовать частную форму propetry объекта внутри вызова функции, он будет использовать его как статическое свойство.