物体速度[财产]

时间:2012-04-03 11:19:43

标签: javascript performance set

我想通过将它们推入某个集合来关注“已经处理了哪些对象” 由于JavaScript中没有类型Set,我将使用Object,如Mimicking sets in JavaScript?所述 所以问题是:这个字典检查取决于已经推入我的Set对象的对象的数量吗?是O(N)还是O(1)?

1 个答案:

答案 0 :(得分:1)

答案肯定是JS引擎的答案各不相同。关于V8,检查速度取决于对象的数量(==“设置”对象属性计数),但它仍然是O(1)。否则,没有相当多的Web应用程序可以足够快地运行。

关于您引用的SO问题,请不要使用if ("foo" in A)来检查元素是否存在,如果可能的话 - 这将遍历整个原型链,因此您将获得性能影响并且很可能找到很多对象不应该存在(如toString)。尽可能使用A.hasOwnProperty("foo")