JavaScript ES6中的符号是如何实现的?

5uzkadbs  于 2022-12-17  发布在  Java
关注(0)|答案(1)|浏览(156)

我最近了解了JavaScript ES6中的符号,我非常好奇它是如何在幕后实现的。
具体来说,我很好奇符号是如何实现独特性的:

a = Symbol('key')
b = Symbol('key')
a !== b // true

但也可以实现其for功能:

a = Symbol.for('key')
b = Symbol.for('key')
a === b // true

有人能解释一下这是如何在引擎盖下实现的吗?
我阅读了MDN文档,但它主要描述了接口,而不是实现。

pinkon5k

pinkon5k1#

我很好奇如何实现符号以实现唯一性
就像物体一样:当你创建一个新的示例时,它有它自己的identity
有人能解释一下for是如何在幕后实现的吗?
它基本上是一个Map,按照名称缓存创建的符号,它被称为global symbol registry

相关问题