В чём отличие от присваивания a = requestAnimationFrame(anim)
и от обычного вызова requestAnimationFrame(anim)
?
только в том, что сохранили значение, которое возвращает вызов. Для этой функции это значение некий уникальный id, по которому, при необходимости, можно отменить вызов через
cancelAnimationFrame()
, но в приведённом коде это значение никак не используется.
Почему идёт каждый раз вызов функции anim()
Первый раз потому, что в конце кода стоит вызов
requestAnimationFrame()
. Последующие — потому, что в конце очередной отработки anim() есть вызов
a = requestAnimationFrame(anim);
при условии, что счётчик не превышен.