考虑一下:
var items = {};
var id = 'varID';
if (typeof items.id == 'undefined') {
items.id = {};
}
据我所知,这会将空属性id
分配给普通对象items
。
如何使用变量varID
将属性items
分配给普通对象id
?
答案 0 :(得分:5)
尝试
items[id] = items[id] || {}; //Does the same work as the if statement
而不是items.id
。有了这个,您可以指定动态属性。
(相信我,我曾经遇到过同样的问题。)
或者您可以使用Object.defineProperty(obj, prop, descriptor)
(稍微不同)。
引用文档:
The Object.defineProperty() method defines a new property directly on an object
or modifies an existing property on an object, and returns the object.
在 Object.defineProperty() 中查看更多内容。
这是两种方法。显然,第二个与第一个有点不同。