gpt4 book ai didi

javascript - JavaScript VM 是如何实现 Object 属性访问的?它是哈希表吗?

转载 作者:行者123 更新时间:2023-11-30 06:16:45 25 4
gpt4 key购买 nike

JavaScript中的对象可以用作Hashtable(键必须是字符串)它的性能和 Hashtable 这种数据结构一样好吗?

我的意思是,它是否在幕后实现为哈希表?

更新:(1) 我将 HashMap 更改为哈希表 (2) 我想大多数浏览器都以相同的方式实现它,如果不是为什么不呢?在 ECMAScript 规范中是否有任何要求如何实现它?

更新 2:我明白了,我只是想知道 V8 和 Firefox JS VM 如何实现 Object.properties getters/setters?

最佳答案

V8 没有将对象属性访问实现为哈希表,它实际上以更好的方式实现它(性能方面)

那么它是如何工作的呢? “V8 不使用动态查找来访问属性。相反,V8 在幕后动态创建隐藏类”- 这使得对属性的访问几乎与访问 C++ 对象的属性一样快。

为什么?因为在固定类中,每个属性都可以在特定的固定偏移位置找到。

所以一般来说,在 V8 中访问对象的属性比 Hashtable 更快..

我不确定它在其他虚拟机上如何工作

可在此处找到更多信息:https://v8.dev/blog/fast-properties

您还可以在此处阅读有关 JS 中的哈希表的更多信息:(我的博客)http://simplenotions.wordpress.com/2011/07/05/javascript-hashtable/

关于javascript - JavaScript VM 是如何实现 Object 属性访问的?它是哈希表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55689758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com