我该如何将一个字符串作为代码执行(使用 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()
的代码看起来好,并且短小精悍,不必包含助手变量名等。