Тема: Function Cache
Показать сообщение отдельно
  #22 (permalink)  
Старый 07.12.2014, 17:19
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от bes
возьми мой пример и покажи, что не так
вот в этой строке
cache[stamp] = fn.apply(this, arguments);

в ключ записывается не объект, а лишь текстовое представление его "верхушки", первого хеша. В дальнейшем, когда ты делаешь проверку, у тебя следующий "отпечаток", при сравнении строк даст true, хотя объекты, записанные туда, могут быть другими.
o1={a: 1}
o2={a: 1}

textRepresent1=JSON.stringify(o1)
textRepresent2=JSON.stringify(o2)
console.log(
o1===o2,
textRepresent1===textRepresent2
)
//  false true

У тебя из кеша будет извлечено не то, что ты ожидаешь.

Последний раз редактировалось krutoy, 07.12.2014 в 17:27.
Ответить с цитированием