如何在JavaScript中将键值用作变量名?

时间:2016-06-01 17:31:07

标签: javascript json variables object

我希望能够将JSON带入我的程序,然后根据该数据创建对象。所以,我想创建一个对象,其中该对象的名称是存储在键值对中的值。例如,如果我有以下JSON(我知道这不是完美的JSON):

{
    "objectName" : "**variableName**",
    "someDataName" : "thatData",
    "someOtherDataName" : "thisData"
}

然后我希望能够创建一个这样的对象:

function myObject(thatData, thisData) {
    this.name = name;
    this.thatData = thatData;
}

var **variableName** = new myObject(thatData, thisData);

这里的关键是我希望能够使用ObjectName键值对中存储的值作为对象的变量名。这甚至可能吗?我一直在寻找如何做这一段时间。我认为这与"Variable" variables in Javascript?不同,因为我试图使用键值对中的值来命名我的对象。

2 个答案:

答案 0 :(得分:2)

如果我理解你在这里尝试做什么,一种方法可能是在变量中设置属性:

let myContainer = {};
// ...
myContainer['whatever_variable_name'] = new ...

您可以使用myContainer.whatever_variable_namemyContainer['whatever_variable_name']来访问新对象。

要从JSON对象分配属性,请参阅Object.assign

答案 1 :(得分:0)

您可以使用property accessor对象上的window为全局范围设置动态密钥的值。

var window["**variableName**"] = new myObject(thatData, thisData);