javascript - "in"运算符或 obj.hasOwnProperty(prop) 的 Big O 表示法的效率是多少

标签 javascript performance big-o

Mozilla 的网站清楚地描述了hasOwnProperty()。和 in运营商。

但是,它没有提供有关其效率的任何实现细节。

我怀疑它们会是 O(1)(常数时间),但我希望看到任何可能存在的引用或测试。

最佳答案

将我的评论变成答案。

hasOwnProperty() 应该 O(1),因为它是一个键查找,但它是特定于实现的。

in 肯定会更复杂(尽管应该与 hasOwnProperty() 相同,如果属性存在于该对象上),因为它沿着原型(prototype)链上升, 寻找那个属性(property)。这就是为什么通常建议在使用 for ( in ) 遍历对象属性时使用 hasOwnProperty()

要找出答案,请检查这些函数的源代码。使用来源,卢克 :)

关于javascript - "in"运算符或 obj.hasOwnProperty(prop) 的 Big O 表示法的效率是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6012242/

相关文章:

javascript - 哪个核心代码负责编译此插件中的 JavaScript

javascript - JSZip 内存问题

database - 将数据库用于人工智能?

cassandra - Cassandra 操作的时间复杂度(Big O)是多少?

java - 这个程序的效率如何?

递增顺序的算法 - O(tlgn)

javascript - 如何在 javascript 中打印函数签名

javascript - 在 jQuery 中加载 PHP 文件后如何在函数中使用变量?

c++ - 实时音频应用,提升性能

c++ - 访问堆中的数据比访问栈中的数据快吗?