Показать сообщение отдельно
  #2 (permalink)  
Старый 26.11.2009, 03:14
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от 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

Последний раз редактировалось Octane, 26.11.2009 в 03:17.
Ответить с цитированием