给 JS 程序员解释为什么 Map 类型允许不同类型数据作为 Key?

发布于 2022-08-28 12:34:02 字数 46 浏览 11 评论 0

String 类型作为 Key 不是已经够用了吗, 为什么要各种类型的呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心碎无痕… 2022-09-04 12:34:02

在从C到Lisp的这根“动态能力”的坐标轴上,Java是坐在C++旁边的最不动态的一族,而JS是在非Lisp系的语言中最靠近Lisp的最动态的一族。所以题主可以先去找一些lisp黑客写的抨击GoF的文章,我这里简单提一下大意『设计模式就是Java太傻了不得不绕大圈子来约定碰到Java的缺陷的时候应该怎么办』

偏题了。正如评论所说Map的初衷是一个对象到另一个对象的映射,如果仅限string key,那么势必需要把对象抽象成一个唯一的string来表示,很多时候这件事很傻。那为什么JS程序员几乎感觉不到这个需求呢?我认为是因为在JS的世界里,很多时候要做这样的映射,直接赋值就完事儿了

map = new Map()
map.add(student, teacher)
map.get(student)//my teacher

vs

student.teacher = teacher
student.teacher//my teacher

那么前者的好处在哪里呢?自然是可以把这组映射本身作为一个对象来维护,比如很容易同时存在两个map对象描述两套师生搭配的方案,或者可以直接把这种映射保存到某个地方

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文