decoratedSlowFunc(3, 5)const decoratedSlowFunc = cachingDecorator(worker.slow, hash); и уже там вызывается функция cachingDecorator(worker.slow, hash)возвращающая функцию обертку function decoratedSlow().const decoratedSlowFuncconst decoratedSlowFunc происходит запись (key, result) в кэш функции находящейся в глобальном окружении? Т.е. в cachingDecorator(func, hash) в let cache = new Map(); worker.slow = cachingDecorator(worker.slow, hash);
alert( worker.slow(3, 5) );(3,5), а cachingDecorator вызывается с параметрами (worker.slow, hash).arguments- это именно (3,5), а не (worker.slow, hash) ? x, или как в вашем примере testValue- становится по очереди каждый элемент массива filterUs каким образом? Или из лексического окружения подхватывается?