현재 루프 된 호출에서 요소 x 픽셀을 이동하면서 일부 내용을 테스트합니다. 재귀 함수를 만들었고 콜백이 오버플로되지 않도록 약간의 지연을 추가했습니다. 나는이 지연을 만들기 위해 setTimeout을 사용했다. 왜 내가 setTimeout 사용할 때 다른 함수 안에 내 재귀 함수를 래핑 할 필요가 궁금하네요. 그렇지 않으면 지연이 추가되지 않고 브라우저가 내 콘솔에서 콜백을 초과했습니다. 아래는 내가 사용하고있는 코드입니다. "물건 (볼)"을 div/box/screen을 통해 왼쪽에서 오른쪽으로 반복해서 이동하도록 설계되었습니다.setTimeout을 사용하여 재귀 적으로 호출 할 래퍼 함수가 필요한 이유는 무엇입니까?
(저는 requestAnimationFrame이 일반적으로 이런 종류의 용도로 사용되는 것을 알고 있지만 다른 접근 방식을 통해 javascript에 익숙해 지려고합니다.)
function moveThing(pos){
var currentPos = pos;
currentPos += 5;
theThing.style.left = currentPos + "px";
if(Math.abs(currentPos) >= 900) {
currentPos = -500;
}
console.log(currentPos);
setTimeout(function(){moveThing(currentPos)}, 100);
}
moveThing(0);
정확한 용어를 사용하지 않는 경우에도 언제든지 수정할 수 있습니다. 도와 주셔서 미리 감사드립니다.
당신이 다른 무엇을 할 것 ? – SLaks
'setTimeout'은 호출 가능한 함수를 첫 번째 인수로 기대하기 때문에 함수가 아닙니다 * call * – Li357
@ Li357 Ohhh, 좋습니다. 충분히 간단! 고마워 –