gpt4 book ai didi

javascript - 将字符串转换为函数,给出 ReferenceError

转载 作者:行者123 更新时间:2023-12-01 01:23:18 24 4
gpt4 key购买 nike

我需要调用一个函数,但它以字符串形式给出(最初它要复杂得多,并且包含更多嵌套的 m() 函数。):

"m('p', {class:'red'}, 'text')"

该函数本身是一个 NPM 包,通过 const m = require('mithril') 导入。当我尝试使用它进行转换时,

Function("m('p', {class:'red'}, 'text')")

...控制台显示ReferenceError:m未定义

据我了解,当我使用 Node.JS 运行本地服务器时,它是一个不同的 JS 环境,当我调用 Function() 时,它来自不同的环境。因此它无法识别先前声明的变量。

现在,原来的问题相当复杂且难以描述。我问了一个上一个问题,其中详细描述了问题的全貌: Evaluate a function call given as a string, which was declared with 'require'

有什么解决办法吗?

最佳答案

为了在该代码字符串中使用函数 m,您需要将其作为参数传递给函数:

const m = require(...);
const f = new Function("m", "m('p', {class:'red'}, 'text')");
f(m);

关于javascript - 将字符串转换为函数,给出 ReferenceError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54063611/

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