更多对象属性与使用数组的更少对象属性

时间:2016-03-07 01:16:35

标签: javascript arrays performance object attributes

我正在构建字符串密集的字符描述,使用以下字符对象(如下)。效率非常重要,我知道长字符串的数组会变得非常快。假设在这两种情况下,可以类似地轻松引用属性,并且值是相同的,在效率方面,以下两个对象之间是否存在任何主要差异?

this.genphysdesc = genphysdesc;
this.facetype = facetype;
this.bodytype = bodytype;
this.haircol = haircol;
this.gender = gender;
this.pronA = pronA;
this.pronB = pronB;
this.pronC = pronC;
this.pronD = pronD;

VS

this.physdesc = [genphysdesc, facetype, bodytype, haircol]
this.gender = [gender, pronA, pronB, pronC, pronD]

在任何一种情况下,值都是每个约5-35个字符的字符串。

如果有任何不清楚的地方,请告诉我。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

你的第一个案例使用了对象而第二个使用了数组。

假设你想要数组之间的差异:

// Hoisting section
var a = [];
var propA, propB, propC, propD, propE, propF;
propA = 1;
propB = 2;
propC = 3;
propD = 4;
propE = 5;
propF = 6;



a.push( propA );
a.push( propB );
a.push( propC );
a.push( propD );
a.push( propE );
a.push( propF );

// vs.

a = [ propA, propB, propC, propD, propE, propF ];

console.log( a );

第二个版本只分配一次,因此速度更快。对象分配与不同的语法相同。

看看吊装:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var

[]与推送语法有一些性能差异和基准: Is there a reason JavaScript developers don't use Array.push()?