我一直认为:symbolRuby中的这个概念是不必要的。我们可以像使用JavaScript一样轻松地使用纯字符串。现在,他们决定将JS中的内容复杂化。
:symbol
我不明白动机。有人可以向我解释我们是否真的需要JavaScript中的符号?
将符号引入Javascript的最初动机是启用 私有 属性。
不幸的是,它们最终被严重降级。它们不再是私有的,因为您可以通过反射找到它们,例如使用Object.getOwnPropertySymbols或代理。
Object.getOwnPropertySymbols
它们现在被称为 唯一 符号,它们的唯一用途是避免属性之间的名称冲突。例如,ECMAScript本身现在可以通过某些方法引入扩展钩子,您可以将其应用于对象(例如,定义其迭代协议),而不必冒与用户名冲突的风险。
是否足够强大,是否有动机在语言中添加符号尚有争议。