gpt4 book ai didi

javascript - JavaScript VM如何实现对象属性访问?是哈希表吗?

转载 作者:行者123 更新时间:2023-12-03 02:22:05 24 4
gpt4 key购买 nike

JavaScript中的对象可以用作哈希表(键必须是字符串)它的性能是否与 Hashtable 数据结构一样好?

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

更新:(1)我将HashMap更改为hashtable(2)我猜大多数浏览器都实现了相同的功能,如果不是为什么不呢? ECMAScript 规范中有如何实现它的任何要求吗?

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

最佳答案

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

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

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

因此,一般来说,在 V8 中访问对象的属性比 Hashtable 更快。

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

更多信息可以在这里找到:https://v8.dev/blog/fast-properties

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

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

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