Js对象缓存性能

Js object cache performance

本文关键字:性能 缓存 对象 Js      更新时间:2024-01-20

我读到js中有更好的性能,我知道如果我有这样的东西:

for (i=0;i<document.images.length;i++)
document.images[i].src="blank.gif"

所以更好的方法是像这样缓存对象:

var theimages = document.images
for (i=0;i<theimages.length;i++)
theimages[i].src="blank.gif"

我的问题是,它是只在dom对象中,还是在常规对象中,性能更好。例如:

var obj = {key: {one: 1, two:2, three: 3}};
obj.key.one = 'something';
obj.key.two = 'something';
obj.key.three = 'something';

在这个例子中,这样做会更好吗?

var obj = {key: {one: 1, two:2, three: 3}};
var objKey = obj.key;
objKey.one = 'something';
objKey.two = 'something';
objKey.three = 'something';

是的,缓存子对象可能会更快。

然而,对于普通对象,增益可以忽略不计,因为哈希表中的搜索平均为O(1)。然而,在最坏的情况下是O(n)。

缓存对象对于避免一次又一次地遍历DOM来检索对象基本上是有用的。