Сообщение от Diem
|
если я использую в качестве ключей - объекты.
|
Ключ (имя свойства объекта в JavaScript) всегда является строкой.
Когда вы пытаетесь создать свойство, указав в аксессоре переменную с ссылкой на объект, то автоматически вызывается метод toString:
var a = {};
alert(a.toString());
Соответственно свойства будут перезаписываться:
var obj = {};
var a = {};
obj[a] = 1; // тоже самое, что obj["[object Object]"] = 1
alert(obj[a]); // 1
var b = {};
obj[b] = 2; // тоже самое, что obj["[object Object]"] = 2
alert(obj[a]); // 2