У меня есть часть отладочной структуры, которая должна иметь возможность запускать объекты eval времени.
В частности, если у меня есть строка, подобная этой "{a: 1, b:2}"
, она должна оценивать ее в объекте с членами a
и b
с этими значениями. Однако, если я делаю eval("{a: 1, b:2}")
, он, кажется, оценивает его как утверждение и говорит что-то о незаконной метке.
Я взломал его так, чтобы он оценивал следующее:
eval("var x=" + str + "; x;");
который, кажется, работает, но кажется ужасным взломом. Любые предложения о том, как сделать это лучше?
(Кстати, я знаю об опасностях eval, но это часть структуры отладки, которая не будет видна фактическим пользователям.)