【发布时间】:2015-09-08 04:39:44
【问题描述】:
我花了一段时间,但我终于弄清楚了 ECMAScript 6 中符号的用途是:在将属性附加到共享对象时避免名称冲突 - HTML 元素,例如(如果你遇到同样的问题,我推荐this article。)
但后来我偶然发现了Symbol.for()。显然 ECMAScript 6 将维护一个全局符号注册表,您可以通过提供符号描述来使用此函数进行查询。再来?如果我使用符号来避免名称冲突,我为什么要我自己的代码以外的代码使用它们? (*) 我将如何避免该全局注册表中的名称冲突?符号共享似乎完全颠覆了概念和全局注册表。
(*) 是的,我知道符号不是真正私有的,但这不是重点。
【问题讨论】:
-
由于您的问题不清楚,因此
Symbol('some description');不会在全局注册表中注册内容。仅当您通过Symbol.for明确要求全局注册符号时。 -
是的,感谢您的澄清!
-
虽然这不是一个例子。简单地说明代码可能需要访问跨库和/或 iframe 的属性并不能说明为什么符号注册表是答案。
标签: javascript symbols ecmascript-6