gpt4 book ai didi

javascript - 从字符串执行 Javascript 代码的概念方法

转载 作者:行者123 更新时间:2023-12-03 13:34:56 24 4
gpt4 key购买 nike

目前,我的应用程序遇到概念问题。

用户应该能够在我的react/redux应用程序中创建Javascript类,并且我的应用程序应该能够执行编写的Javascript代码。

例如,用户A写道:

class PredefinedClassName {
constructor(a) {
this.a = a;
}

getSomething(parameterFromOutside) {
return this.a * parameterFromOutside;
}
}

然后,该类将作为字符串(重要)保存在某个数据库中。

接下来我想加载这个类(再次作为字符串)并执行以下操作:

  1. 创建该类的一个实例,该实例包含在字符串中...(如何?)
  2. 在实例上调用“getSomething”方法并将我自己的参数传递给该方法(如何?)

由于这是一个非常罕见的用例,因此有关它的文献非常少,而且几乎没有库。

旁注:最重要的是,我还应该检查语法和运行时错误,但我认为这是下一步,所以首先我想解决基本部分。

您对如何解决这个概念问题有什么想法吗?

最佳答案

创建存储在字符串中的类的实例实际上非常容易,浏览器基本上在后台执行此操作。您需要做的就是以下操作:

// Save your javascript class in a string variable:
const classString = `class PredefinedClassName {
constructor(a) {
this.a = a;
}

getSomething(parameterFromOutside) {
return this.a * parameterFromOutside;
}
}`;

// Create an instance of this class with eval() function, by appending the original class declaration before the instantiation, and do not return the newly created class inside the eval, just create it like so:
const customParameterValue = 5;
const instanceOfClass = eval(classString + `new PredefinedClassName(${customParameterValue})`)

// Now you can use 'instanceOfClass' as usual:
instanceOfClass.getSomething(10)

请随时在评论中要求澄清:)

关于javascript - 从字符串执行 Javascript 代码的概念方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60956057/

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