gpt4 book ai didi

javascript - 运行时代码编译

转载 作者:行者123 更新时间:2023-11-28 20:31:50 25 4
gpt4 key购买 nike

我正在从事一个教授 JavaScript 技术的项目(例如 Code Academy)。我这样做主要是为了自学。

我在一个重要部分遇到困难:由于整个项目是一个网络项目,用户直接在网站中输入他的代码。我的问题是,如何检查提交的代码是否通过了当前练习的所有测试?我的方法是评估代码并针对它运行我的单元测试。这里的问题是,如何限制评估代码的范围以及如何测试它?我已经找到了解决方案 here关于如何限制范围:

function maskedEval(scr)
{
// set up an object to serve as the context for the code
// being evaluated.
var mask = {};
// mask global properties
for (p in this)
mask[p] = undefined;

// execute script in private context
(new Function( "with(this) { " + scr + "}")).call(mask);
}

但我没有解决方案如何针对评估的代码运行我的测试。这是执行此操作的正确方法还是我应该完全不同?

最佳答案

如果您在客户端运行代码,则没有真正需要限制其范围,因为它只会影响客户端本身。

但是,如果您发送要在服务器端进行评估的代码,您可能需要查看 node.js 的沙箱库,例如 http://gf3.github.io/sandbox/ (我在google上找到的第一个,可能还有更多)。

关于javascript - 运行时代码编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18135328/

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