как я могу выполнить строку как код (используя eval()
) и дать ей несколько переменных? Например, у меня есть объект с именем vars
, и я хочу, чтобы каждое его свойство было доступно для кода без точного указания имени объекта. Примерно так:
function evalWithVariables(func, vars) {
//some magic here
return eval(func);
}
function test() {
var retval = evalWithVariables("a>5", {"a":7});
console.log(retval);
}
О, и код является доверенным, он поступает с того же сервера, что и скрипт, он не генерируется пользователем, и я уверен, что eval
является правильным инструментом здесь (и я знаю, что eval
часто злой).
Редактировать: Самым важным для меня является то, что код, который передается в eval()
, выглядит хорошо, короток и не должен содержать имена вспомогательных переменных или около того.