JS, WeakMap, WeakReference и т.д.
Aug. 29th, 2014 02:20 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Или я торможу, или лыжи не едут...
Вот бывают WeakReference, c ними всё понятно - их можно dereference, и в ответ дадут или value, или ничего, если GC уже добрался.
И бывают WeakValueDictionary, которые по сути Dictionary[String,WeakReference[Object]], с ними тоже всё понятно.
Но в JS есть WeakMap, в котором когда ключ!!! собрался, то удаляется value.
Внимание, вопрос: из них можно сделать WeakReference или нет? Если нет, то какой у них юзкейс вообще? о_О
(Я хочу сделать кэш, но там обьекты очень тяжелые, и когда кешей несколько - лучше пусть GC чистит, ему виднее)
Вот бывают WeakReference, c ними всё понятно - их можно dereference, и в ответ дадут или value, или ничего, если GC уже добрался.
И бывают WeakValueDictionary, которые по сути Dictionary[String,WeakReference[Object]], с ними тоже всё понятно.
Но в JS есть WeakMap, в котором когда ключ!!! собрался, то удаляется value.
Внимание, вопрос: из них можно сделать WeakReference или нет? Если нет, то какой у них юзкейс вообще? о_О
(Я хочу сделать кэш, но там обьекты очень тяжелые, и когда кешей несколько - лучше пусть GC чистит, ему виднее)