Я пытался ухватить ES2015 карты концепции и одна вещь, которую я не понимаю, заключается в следующем:Использование объекта в качестве ES2015 карты ключа
var mapRawObj = new Map();
var rawObj = {j:"I like penguin"};
mapRawObj.set(rawObj,true);
console.log(mapRawObj.get(rawObj)); //this outputs true
mapRawObj.set({j:"I like polar bear"},true);
console.log(mapRawObj.get({j:"I like polar bear"})); //this outputs undefined
Первый из них работает, второй один Безразлично 't, и я не понимаю, почему?
Я думал, что когда вы регистрируете объект как ключ, это сам объект, а не имя объекта. Вот почему в приведенном ниже примере, когда вы повторно назначаете ключевой объект, он не работает как ключ?
var obj = { a:"hello ", b:"world "};
var mapObj = new Map();
mapObj.set(obj,true);
obj = {d:34}; //obj is re-assigned
console.log(mapObj.get(obj)); // outputs undefined
В вашем втором примере вы в основном имеют такую же ситуацию, как в вашем втором фрагменте кода. Таким образом, либо вы понимаете оба, либо ни одно из них. Я смущен. – zeroflagL