创建一个对象并为其指定一个变量名称javascript

时间:2018-03-12 19:52:29

标签: javascript object

我想说我想创建一个使用变量命名的对象?我该怎么办?它甚至可能吗?

var aName = "obusdiofu";

aName = {check: true, person: false};

console.log(obusdiofu); //gives me the newly created object?

3 个答案:

答案 0 :(得分:0)

你不能直接这样做。您首先想要创建一个对象,然后可以将事物存储为该对象的自定义属性。

var names = {}
var aName = 'obusdiofu'
names[aName] = { check: true, person: false }

答案 1 :(得分:0)

不幸的是,在Javascript中没有这样的东西,但是,你可以这样做:

var aName = "obusdiofu";

this[aName] = {check: true, person: false};

console.log(obusdiofu);

// Or if the code is outside the global scope, then
// you should access it like so :
console.log(this.obusdiofu);

注意:在分配aName变量时应该小心,因为并非所有字符都被接受。

答案 2 :(得分:0)

首先免责声明,每MDN

  

不要使用eval

     

eval()是一个危险的函数,它使用调用者的特权执行它传递的代码。如果您使用字符串运行eval()   可能会受到恶意方的影响,您最终可能会运行   具有您的权限的用户计算机上的恶意代码   网页/扩展程序。更重要的是,第三方代码可以看到   调用eval()的范围,可能导致可能的攻击   以类似Function不易受影响的方式。

话虽如此,你可以按照以下方式实现:

let aName = 'obusdiofu';
eval(`var ${aName} = {check: true, person: false}`);
console.log(obusdiofu);

我不明白为什么这是必要的,并且由于eval()的问题,你最好做一些像其他发布的答案。