gpt4 book ai didi

javascript - eval() 带有来自范围内对象的变量

转载 作者:行者123 更新时间:2023-12-02 07:49:56 25 4
gpt4 key购买 nike

如何将字符串作为代码执行(使用 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() 的代码看起来不错,很短并且不必包含辅助变量名字左右。

最佳答案

发现只使用 with 是可能的:

eval("with (vars) {var result = (" + func + ")}");

关于javascript - eval() 带有来自范围内对象的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4359639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com