Как функция получает аргументы?

194
22 января 2022, 02:20

let worker = { 
  slow(min, max) { 
    alert(`Called with ${min},${max}`); 
    return min + max; 
  } 
}; 
 
function cachingDecorator(func, hash) { 
  let cache = new Map(); 
  return function() { 
    let key = hash(arguments); // (*) 
    if (cache.has(key)) { 
      return cache.get(key); 
    } 
 
    let result = func.call(this, ...arguments); // (**) 
 
    cache.set(key, result); 
    return result; 
  }; 
} 
 
function hash(args) { 
  return args[0] + ',' + args[1]; 
} 
 
worker.slow = cachingDecorator(worker.slow, hash); 
 
alert( worker.slow(3, 5) ); // работает 
alert( "Again " + worker.slow(3, 5) ); // аналогично (из кеша)

Не разберусь как аргументы (3, 5) попадают в let key = hash(arguments)?

READ ALSO
Вычислить градус поворота View элемента

Вычислить градус поворота View элемента

На заднем фоне View элемент напоминающий треугольникСиним показан элемент который нужно развернуть вдоль гипотенузы

91