我正在构建字符串密集的字符描述,使用以下字符对象(如下)。效率非常重要,我知道长字符串的数组会变得非常快。假设在这两种情况下,可以类似地轻松引用属性,并且值是相同的,在效率方面,以下两个对象之间是否存在任何主要差异?
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个字符的字符串。
如果有任何不清楚的地方,请告诉我。谢谢你的帮助!
答案 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()?