javascript - 给 JS 程序员解释为什么 Map 类型允许不同类型数据作为 Key?
高洛峰
高洛峰 2017-04-10 14:25:04
[JavaScript讨论组]

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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
巴扎黑

在从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对象描述两套师生搭配的方案,或者可以直接把这种映射保存到某个地方

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号