vol*_*los 6 javascript ecmascript-6
是否有任何替代解决方案可以从字符串 var 创建 js 函数,除了eval()
出于Function constructor
安全原因我不允许使用这两种方法。
当你使用 js 代码创建 DOM 元素并添加到页面时,我知道解决方案,但这绝对是肮脏的黑客行为。非常感谢您的帮助。
====
添加
我收到了带有“a === b”、“!a”、“(a && b) || c”等字符串的 json 数据...(数百种组合)。需要创建并返回可以执行此比较功能的函数。
某物
var test = function ('a === b') {
//some code without eval and new Function()
}
// in console
test('aa', 'bb') // return false
Run Code Online (Sandbox Code Playgroud)
感谢大家的有趣回答。
\n\n因此,我已阅读并尝试使用您建议我的所有方法。\n所有这些方法\xe2\x80\x99s eval() 即使您不会在代码中使用 eval。\n在我的项目中,我使用 WebWorkers 解决了问题。这项技术有很多好处,请阅读 MDN 中的文章https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers
\n\n但是,我必须为此方法使用“新函数”。
\n\n所以正确答案是:
\n\n如果没有 eval 和 new Function() ,则无法从字符串创建函数。
\n\n唯一的方法就是为此编写自己的简单解析器。
\n\n谢谢@brianxautumn
\n 归档时间: |
|
查看次数: |
2060 次 |
最近记录: |