JS中Map以对象作为键的问题

在Map中不同的对象作为键能存储不同的值(每个对象都被认为是唯一的)

下图是《深入理解es6》书中截取的
在这里插入图片描述
这是我chrome控制台中做的测试
(红色的报错可忽略,之前声明过了,我忘记了。对了,顺便提一点,大家应该也都知道的:var声明的可以覆盖,let声明过的如果再次声明则会报错)

此处涉及到对象的引用问题,
① key1={}; key2={}; 与 ②key1={}; key2=key1;是不一样的。
第一种,本质上是在堆中创建了两个不同的对象,而key1,key2都是栈中的两个指针,分别指向这两个对象。
而第二种,本质上只创建了一个对象,key1和key2指向的都是这一个对象。
只有一个对象,自然只会存储一个值,所以无论map.get访问key1还是key2都是一样的结果。与上述的结论并不冲突

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值