Javascript 想要避免eval和函数构造函数吗
试图在不使用函数构造函数的情况下替换eval。难倒了。我不是新手,但也不是专家 杰斯林特说这是邪恶的;当我用函数构造函数替换它时,它说这只是eval()的一种形式Javascript 想要避免eval和函数构造函数吗,javascript,function,eval,Javascript,Function,Eval,试图在不使用函数构造函数的情况下替换eval。难倒了。我不是新手,但也不是专家 杰斯林特说这是邪恶的;当我用函数构造函数替换它时,它说这只是eval()的一种形式 帮助???您不能在场景中简单地传递函数对象吗? e、 g 还是这种形式的?这可以在没有eval或函数构造函数的情况下工作。但它要求requestObject是函数对象,而不是字符串。您想解决什么问题?请澄清您的问题是什么。requestObject.script中的内容是什么?我假设要执行一个JavaScript块,但它是函数、AJA
帮助???您不能在场景中简单地传递函数对象吗? e、 g
还是这种形式的?这可以在没有eval或函数构造函数的情况下工作。但它要求requestObject是函数对象,而不是字符串。您想解决什么问题?请澄清您的问题是什么。
requestObject.script中的内容是什么?我假设要执行一个JavaScript块,但它是函数、AJAX请求的结果等吗?此时,我不确定requestObject.script中JS代码的细节。很可能是一些JSON,因为这是代码中常用的(我刚刚继承的)。>“那么eval是您的第一个赌注…”好吧,所以有时候忽略jslint关于eval是邪恶的建议是可以的?许多网站甚至说“几乎总有一种方法可以避免评估,你应该这样做”,但他们没有解释如何避免评估。也许是时候投资一本好的JS书籍,而不是用谷歌搜索答案了。这个论坛真的很酷——我也在寻找我可以回答的问题,以回馈。我会检查一下,看看是否可以按照你的建议在这里使用闭包。如果我只想用我提供的上下文替换eval,我仍然会对规定的技术感兴趣。提前谢谢。@Dave,eval总是邪恶的。你说得对,编辑了答案。
evaluateEventScript: function(requestObject) {
var resultData;
resultData = eval(requestObject.script);
//send resultData elsewhere...
}
var c = function(){
...
}
var evaluateEventScript = function(requestObject) {
var resultData;
resultData = requestObject();
//send resultData elsewhere...
}
evaluateEventScript(c);