gpt4 book ai didi

javascript - 调用以字符串编码的 javascript 函数

转载 作者:数据小太阳 更新时间:2023-10-29 04:40:26 24 4
gpt4 key购买 nike

如果我像这样将函数放入字符串中:

var functionString = function (message) {
console.log(message);
}.toString();

有什么方法可以将字符串转换回函数并调用它吗?我试过了

eval(functionString)

返回“Uncaught SyntaxError: Unexpected token”,和

functionString.call(this, "HI!");

返回“undefined is not a function”。

在 javascript 中这甚至可能吗?

提前感谢您的回复!

编辑:这个问题的重点是函数已使用 toString() 转换为字符串。所以

console.log(functionString);

返回这个字符串:“功能(消息){console.log(消息);}”

我可以将字符串转换回函数并调用它吗?这就是我要解决的问题。谢谢!

最佳答案

你快到了,但你错过了一些东西。

当我们在您的函数上调用 toString() 时,我们得到

"function (message) {
console.log(message);
}"

然后我们可以对其进行评估。但是,我们只是在这里创建一个匿名函数对象;我们将无法调用它!

如果我们改为:

var functionString = "var restoredFunc = " + function (message) {
console.log(message);
}.toString();

然后我们可以做以下事情

eval(functionString);
// prints "hello!" to console
restoredFunc("hello!");

关于javascript - 调用以字符串编码的 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27324716/

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