【发布时间】:2020-11-03 09:43:12
【问题描述】:
我正在获取这样的 es6 函数的字符串表示形式
"return (...args) => {↵ console.log('HIGHLIGHTLOADER', args);↵ };"
从这个字符串,我需要创建一个函数
const func = (...args) => {
console.log('HIGHLIGHTLOADER', args);
}
如果不使用 eval,我该如何解析这个字符串?
【问题讨论】:
-
通过“解析” - 你的意思是你想创建一个可以直接调用的可执行函数吗?或者通过“解析”你的意思是你想要函数的AST?如果是前者,那么不,你不能。这正是
eval的用途。你问的是非常不安全的。 -
另外,为什么你想这样做?用例是什么?
-
@Dai 是的,我想创建可执行函数。
-
为什么没有 eval?它确实是为此用途而制造的。
-
@WimalWeerawansa 这个应用程序的本质是什么?它是如何运行的(在浏览器中?服务器端 NodeJS?其他东西?)。您的应用程序设计是否真的要求执行不受信任、未经验证的用户提供的脚本?您的程序如何处理提供脚本的人,该脚本窃取 cookie 并将其发送到犯罪僵尸网络或 JavaScript 加密货币挖掘?
标签: javascript string function parsing ecmascript-6