如何执行一个字符串作为代码(使用eval()
)并给它一些变量?例如,我有一个名为vars
的对象,并希望它的每个属性都可以在代码中进行访问,而无需指定对象名称。事情是这样的:eval()与范围内的对象的变量
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()
的代码看起来不错,很简短,并且不需要包含帮助变量名等等。
嗯,是的,应该工作,但它不知何故看起来不干净。 – thejh 2010-12-05 16:09:31
概念本身是不洁的:) – 2010-12-05 17:54:54