Задумался я, как можно кэшировать в JS. Допустим, хотим закешировать многократный вызов некоторой функции, которая вызывается несколько раз с одним и тем же аргументом. Как это сделать? С примитивами, все понятно, а как с объектами? Логично было бы предположить, что в кеше надо сохранять ссылку на объект. Но ведь при вторичном вызове объект уже может изменится. Мы получим неактуальный результат. А между тем, в js почти все есть объекты. Да и с примитивами не все так просто, ибо примитив, вызванный в объектном контексте, тоже становится объектом. То есть, кэширование в js вообще невозможно.
Но тогда как же это делают оптимизаторы? Ведь нам втирают, что в js-движках кэширование, таки, есть.