我在JavaScript中迭代一个大对象的属性,特别是在WebKit浏览器中遇到了一个瓶颈,我似乎无法编码。
基本上,如果我有一个主要由整数值键入的对象作为属性(1,2,4,10678等),然后添加一些长属性名称(“somelongdescriptorofaproperty”)迭代时的性能对象降级10倍或更多(在我最糟糕的情况下降低80倍!)
如果我的对象的属性是很多短字符串和一些长字符串,那么这不会发生,因此不是“整数只是更快的兄弟”的情况。混合两者似乎是因素。
看看这个名不副实的jsperf,看看我的观点 - > http://jsperf.com/object-recursion
为什么会这样?这是一个WebKit'功能',这是什么方式?要使单独的对象只包含整数属性和冗长的属性吗?