Оценка функции - PullRequest
       11

Оценка функции

1 голос
/ 19 октября 2011

Я пытаюсь создать небольшую библиотеку, в которую вы можете отправить объект (который имеет функции) и некоторые данные и аргументы, и он отправит объект, данные и аргументы рабочему процессу, который затем оценит объект реконструировать функции (из строк в функции)

В настоящее время у меня есть это:

JSON.stringify(object, function(key, val) { if typeof val === 'function' { return val + '' } return val });

Эта функция будет структурировать объект, включая функции.

В моем работнике я пытаюсь отменить этот процесс.

Я пробовал следующее: eval(object) Я также пытался реализовать JSON.parse, пытаясь eval () каждой функции, когда я сталкиваюсь с ней.

Я также пытался eval("return " + object.function)

Возможно ли это?

1 Ответ

1 голос
/ 19 октября 2011

Вы, вероятно, хотите:

eval("(" + object.function + ")");

Вы не можете поместить оператор возврата только где-то.

function() {} оценивается как функция объявление , которая завершается ошибкой, поскольку у нее нет имени. Поскольку анализируемые данные представляют собой функцию выражение , например var f = function() {}, необходимо поместить вокруг нее (), чтобы она оценивалась как выражение.

...