Я немного поиграл и искал, но я не могу понять это. У меня есть псевдо-частная функция внутри объекта JavaScript, которую нужно вызвать через eval (потому что имя функции построено динамически). Однако функция скрыта от глобальной области с помощью замыкания, и я не могу понять, как ссылаться на нее с помощью eval().Вызов функции строкой в JavaScript и остающейся в области
Ex:
var myObject = function(){
var privateFunctionNeedsToBeCalled = function() {
alert('gets here');
};
return {
publicFunction: function(firstPart, SecondPart) {
var functionCallString = firstPart + secondPart + '()';
eval(functionCallString);
}
}
}();
myObject.publicFunction('privateFunctionNeeds', 'ToBeCalled');
Я знаю пример выглядит глупо, но я хотел бы сохранить его простым. Есть идеи?
Второе решение отлично выглядит, спасибо –
В вашем втором решении я бы рекомендовал использовать пустой объект, а не массив для переменной 'functions', например. 'var functions = {};' – CMS
@CMS: так изменено. – moonshadow