小编典典

将符号引入ES6的动机是什么?

javascript

我一直认为:symbolRuby中的这个概念是不必要的。我们可以像使用JavaScript一样轻松地使用纯字符串。现在,他们决定将JS中的内容复杂化。

我不明白动机。有人可以向我解释我们是否真的需要JavaScript中的符号?


阅读 402

收藏
2020-05-01

共1个答案

小编典典

将符号引入Javascript的最初动机是启用 私有 属性。

不幸的是,它们最终被严重降级。它们不再是私有的,因为您可以通过反射找到它们,例如使用Object.getOwnPropertySymbols或代理。

它们现在被称为 唯一
符号,它们的唯一用途是避免属性之间的名称冲突。例如,ECMAScript本身现在可以通过某些方法引入扩展钩子,您可以将其应用于对象(例如,定义其迭代协议),而不必冒与用户名冲突的风险。

是否足够强大,是否有动机在语言中添加符号尚有争议。

2020-05-01