选项A:
myobj = {
a: 'a',
a1: 'a1',
a2: 'a2',
a2a: 'a2a',
a2b: 'a2b',
a3: 'a3',
a3a: 'a3a',
a3a1: 'a3a1',
a3a2: 'a3a2',
b: 'b',
// ...
};相对于选项B:
myobj = {
a: {
a1: 'a1',
a2: {
a2a: 'a2a',
a2b: 'a2b'
},
a3: {
a3a: {
a3a1: 'a3a1',
a3a2: 'a3a2'
}
}
},
b: { ... }
};我正在权衡这是一个设计决策。这里有一个更简单的例子:
选项A:
eventHandler: {
triggerObj: triggerObj,
triggerAction: triggerObj.someMethod,
responseObj: responseObj,
responseAction: responseObj.someMethod
}相对于选项B:
eventHandler: {
trigger: {
obj: triggerObj,
action: triggerObj.someMethod
},
response: {
obj: responseObj,
action: responseObj.someMethod
}
}我敢肯定这就像眼科医生:他们离得太近了,这并不重要。但是,我想看看性能是否有任何坚实的理由,或者仅仅是为了语义/可读性/其他原因。
回到问题标题:有多少额外的对象大括号将需要有一个显著的性能问题?我怀疑即使是1000甚至100万也不会有多大关系:-\
发布于 2014-06-18 16:42:59
我去做了。我创建了一个空对象,并将100万个空对象放入其中。然后我打开了侧写器。
Object count: 1,011,296
Shallow size: 12,202,312
Retained size: 14,434,484因此,每个空JavaScript对象大约有12个字节。我也尝试过使用空数组对象:
Array count: 1,000,725
Shallow size: 32,023,200
Retained size: 32,034,880空数组对象约占32个字节。
https://stackoverflow.com/questions/19780000
复制相似问题