我想说我想创建一个使用变量命名的对象?我该怎么办?它甚至可能吗?
var aName = "obusdiofu";
aName = {check: true, person: false};
console.log(obusdiofu); //gives me the newly created object?
答案 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()
的问题,你最好做一些像其他发布的答案。