작성
·
224
0
안녕하세요 강사님 두가지 질문이 있는데요
첫번째로는
function loop{...
requestanimationframe(loop)
}
일때 loop이 계속 돌고있는데 이건 그러면 loop함수가 없어지지 않고 계속 생성되고 있는건가요??
답변주시면 감사하겠습니다.
그리고 두번째로는
위의 addEventListener함수에서
rafId = requestAnimationFramp(loop)
을 쓰지 않고 그냥 loop을 쓰면 되지 않나요?
rafId는 loop안에서만 사용되어도 상관없다고 생각이 돼서요.
답변주시면 감사하겠습니다.
답변 1
0
requestAnimationFrame은 기본적으로 1회만 실행이 됩니다.
그치만 우리는 연속적으로 실행이 필요하기 때문에,
function loop() {
// code..
requestAnimationFrame(loop);
}
의 형태로 재귀함수처럼 loop 안에서 계속 호출을 해주고 있는 것이지요.
rafId는 나중에 cancelAnimationFrame으로 취소를 할 때 필요해서 값이 보존되어야하기 때문에,
loop의 지역변수가 아닌 바깥에 설정해서 사용해주는 거랍니다^^
(loop 안에서 선언된 지역변수는 loop 함수의 실행이 끝나면 파기됩니다)