gpt4 book ai didi

javascript - 是否可以将函数以字符串的形式存储并在调用字符串后调用它?

转载 作者:行者123 更新时间:2023-12-02 03:07:20 25 4
gpt4 key购买 nike

为了更清楚地说明,我将把我想要做的事情放在代码中。

var functionsafe = "function plus(a,b){c=a+b; return c}";

并且我们可以直接调用函数add()= functionsafe;

我想知道是否有一种可能的语言能够做到这一点。这是受到SQL注入(inject)攻击方法的启发,这意味着将一些代码注入(inject)到SQL中来搞乱数据库,这让我思考是否可以对通用代码执行此操作,即在执行时修改代码。这听起来可能很疯狂,因为代码需要通过编译器才能被计算机识别,但想象一下是否可以使用类似的技术进行机器学习。请告诉我是否以及为什么不可能做这样的事情。

最佳答案

JavaScript 中最接近的东西是 eval 函数。语法并不完全按照您的建议工作,但功能非常接近。

如果您进行一个小的更改(添加括号),如下所示:

var functionsafe = "(function plus(a,b){c=a+b; return c})";

然后您可以像这样调用该函数:

eval(functionsafe)(2, 3)

这将为您提供结果5

然而,使用eval函数通常不受欢迎。 (参见此处:https://www.sitepoint.com/call-javascript-function-string-without-using-eval/)

关于javascript - 是否可以将函数以字符串的形式存储并在调用字符串后调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57016751/

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