Как динамически вызывать метод объекта 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 объекта внутри вызова функции, он будет использовать его как статическое свойство.