gpt4 book ai didi

javascript - 不使用 eval 向 JSON 添加函数

转载 作者:行者123 更新时间:2023-12-02 18:56:52 25 4
gpt4 key购买 nike

是否可以在不使用 eval 的情况下制作类似的东西?

foo1 = {"x": 4};
foo2 = {"x": "someFunc(foo1.x)"};

someFunc(var1)
{
return (var1 + 1);
}

alert(foo1.x); // 4
alert(foo2.x); // 5 (hopefully)

其实这是两个问题。第一个是获取要执行的函数,第二个是在没有括号的情况下执行此操作,因为在循环中我不知道它是 foo2.x 还是 foo2.x()。

我能想到的最好的办法是在 JSON 对象中搜索表示函数的关键字,并使用开关列表来执行它们,并将关键字替换为值。

缺点是每次发生变化时我都需要更新 JSON 对象。

最佳答案

你只想要一个普通的 javascript 对象:

var foo1 = {x: 4};
// we make foo2.x a function so it will dynamically update with foo1.x 's value
var foo2 = {x: function(){
return someFunc(foo1.x);}
};

function someFunc(var1)
{
return (var1 + 1);
}

alert(foo1.x); // 4
alert(foo2.x()); // 5

如果您需要将这些对象作为 JSON 传递,您可以使用 JSON.stringify 将对象传递到服务器。

JSON 并不是动态的,它是一种用于传递数据的语言。在操作数据时,您应该将数据表示为一个对象,然后如果需要发送它,可以随时将其转换为 JSON。

关于javascript - 不使用 eval 向 JSON 添加函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251594/

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