javascript - 如何安全地使用对象中的变量?

标签 javascript eval

我对我的控制台感到无聊和困惑,我想出了以下代码:

我正在尝试类似的事情:

x = 16;
y = 26;
f = { x+y:"String!"};

期望做某事或以某种方式做:

Object {1626: "String!"}

或者至少

Object {42: "String!"}

我最终得到了

x = 16;
y = 26;
eval("f = { "+x+y+":\"String!\"}");

按预期返回:

Object {1626: "String!"}

我总是被告知要避免 eval()由于安全问题,永远不要考虑使用它。有没有办法在声明属性时使用变量(抱歉,如果我不知道它到底叫什么)

最佳答案

x = 16;
y = 26;
f = {};
f[x+''+y] = "String!"; // For f[1626]

f[x+y] = "String!"     // For f[42]

关于javascript - 如何安全地使用对象中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23586424/

相关文章:

javascript - 更改具有非唯一类的 div 的内容

javascript - 将数据拆分为两个 json 文件(一个用于分类结构,另一个用于(原始)数据项)是个好主意吗?

javascript - 为什么事件处理程序能够劫持我对 eval 的直接调用?

javascript - eval() 会减慢其他代码的速度,为什么?

javascript - 在 react-router 中调用 getComponent 时如何显示正在加载的 UI?

javascript - 如何在不刷新页面的情况下从另一个菜单获取值?

javascript - Vanilla JavaScript 中的事件处理程序命名空间

linux - 我遇到双引号和 eval 命令的问题

javascript - 获取嵌套的对象值

python - 使用 optparse 从命令行选项中读取列表