Как бороться с примесями с помощью мыши, по функциональному подходу - PullRequest
0 голосов
/ 17 февраля 2019

У меня возникли проблемы при попытке выяснить, как FP работает с чем-то вроде событий мыши.Это пример того, как использовать событие mousemove.

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script>
    let mouseObject = {};
    const mouseFn = () => mouseObject;
    const onMove = ev => {
      mouseObject = {x:ev.x, y:ev.y}
    };
    document.addEventListener('mousemove',onMove);
    const loop = (fn) => {
      console.log(fn());
      requestAnimationFrame(() => loop(fn));
    }
    loop(mouseFn);
  </script>
</head>
<body>
</body>
</html>

Как вы можете видеть из кода, я добавляю прослушиватель, а затем создаю цикл с requestAnimationFrame.

Что мне не нравится вКод в том, что в функции «onMove» я непосредственно изменяю mouseObject, а также в «mouseFn» я возвращаю mouseObject, который не передается в качестве параметра функции.

Но я не вижулюбой лучший способ сделать это и обновить mouseObject внутри цикла

...