想要避免 eval AND 函数构造函数

发布于 2024-08-16 11:39:51 字数 329 浏览 1 评论 0原文

努力尝试在不使用 Function 构造函数的情况下替换 eval。难住了。我不是新手,但也不是专家。

jslint 说这是邪恶的;当我用 Function 构造函数替换它时,它说这只是 eval() 的一种形式!

   evaluateEventScript: function(requestObject) {
        var resultData;
        resultData = eval(requestObject.script);
        //send resultData elsewhere...
   }

帮助??

Trying hard to replace the eval without using Function constructor. Stumped. I am not a newbie but not an expert either.

jslint says this is evil; when I replaced it with a Function constructor, it said that was just a form of eval()!

   evaluateEventScript: function(requestObject) {
        var resultData;
        resultData = eval(requestObject.script);
        //send resultData elsewhere...
   }

Help??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

咽泪装欢 2024-08-23 11:39:51

你不能简单地在你的场景中传递一个函数对象吗?
例如

var c = function(){
   ...
}


var evaluateEventScript = function(requestObject) {
    var resultData;
    resultData = requestObject();
    //send resultData elsewhere...
}

evaluateEventScript(c);

或者这种形式的东西?这可以在没有 eval 或 Function 构造函数的情况下工作。但它要求 requestObject 是一个函数对象,而不是一个 String。

Can't you simply pass a function object in your scenario?
e.g

var c = function(){
   ...
}


var evaluateEventScript = function(requestObject) {
    var resultData;
    resultData = requestObject();
    //send resultData elsewhere...
}

evaluateEventScript(c);

Or something in this form? this can work without eval or Function constructor. but it requires the requestObject to be a function object, and not a String.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文