Возвращаемое значение после eval - PullRequest
1 голос
/ 06 марта 2011
function someFunc() { return 'Hello, world'; }
function call(funcName) { eval(funcName + '()'); }

console.log(call('someFunc'));

Но console.log не печатает «Hello world». Как я могу вернуть значение после eval функции?

Ответы [ 3 ]

4 голосов
/ 06 марта 2011

Вы хотите:

call(funcName) { window[funcName](); }

И не используйте ключевое слово void.Он игнорирует возвращаемые значения и всегда возвращает неопределенное из оператора.

1 голос
/ 25 октября 2013

Чтобы ответить на ваш вопрос, используя eval:

function someFunc() { return 'Hello, world'; }

function call(funcName) { return eval(funcName + '()'); }

console.log(call('someFunc'));

И вы можете использовать eval, если доверяете вводу.это эмпирическое правило

0 голосов
/ 06 марта 2011

Не используйте eval - это зло.Почему бы вам не попробовать это:

Получить функциональный объект JavaScript из его имени в виде строки?

После получения ссылки на функцию вы можете просто вызватьэто и использовать возвращаемое значение напрямую.

...