我最近学习了JavaScript ES6中的Symbols,我非常好奇它是如何在底层实现的。
具体来说,我很好奇符号是如何实现唯一性的:
a = Symbol('key')
b = Symbol('key')
a !== b // true
还可以实现其for
功能:
a = Symbol.for('key')
b = Symbol.for('key')
a === b // true
有人能解释一下这是如何实现的吗?
我阅读了MDN文档,但它主要描述了接口,而不是实现。
我很好奇符号是如何实现唯一性的
就像对象一样:当你创建一个新的实例时,它有自己的标识。
有没有人能透露一下
for
是如何在引擎盖下实现的?
它基本上是一个Map
,通过名称缓存创建的符号。它叫做全局符号注册表。