摘要:
问题 我的目标,非常简单,就是希望能够在我自己的系统中使用别人写的代码,但是这些代码可能会污染全局变量,甚至可能是恶意的,破坏性的。我要保证这些代码被正确执行,并且其影响范围完全受到控制,这就是我想要的沙箱。 根据我自己的思考以及和一些朋友的讨论,我认为我主要需要解决四点: 1.变量访问问题:第三方可以使用变量名访问到全局变量。 2.this问题:函数执行时的默认this值就是全局变量。 3.eval和Function问题:eval可以动态地生成代码,这些代码只有到运行时才能确定。 4.literal以及自动装箱问题:[] {}以及function可以构造出一些内置类的实例,这... 阅读全文