requestAnimationFrame 추가질문입니다.
254
작성한 질문수 1
안녕하세요. 강의 잘 듣고있습니다.
다름이 아니라 이 회차의 질문들 보다가
[오류가 난 후에
requsetAnimationFrame(self.run(self)); 가 아니라 requsetAnimationFrame(function() {self.run(self)}; 으로 function 안에 self.run(self)를 쓰셨는데 둘의 차이점이 궁금합니다.]
이 질문에
[requestAnimationFrame()의 괄호 안에는 함수 자체가 들어가야 합니다.
즉,
function foo() {
}
이런 함수가 있다고 가정하면,
requestAnimationFrame( foo() ); 가 아니라,
requestAnimationFrame( foo ); 가 되어야 하는 거죠~
foo()를 넣게되면, 함수 실행의 결과 값,
결국 foo 함수의 리턴값을 requestAnimationFrame의 인자로 넣어 호출하는 것이 되는 것이죠~
self.run(self)도 run 메서드를 호출하는 것이기때문에
requestAnimationFrame의 사용법에 맞지 않습니다^^
함수 자체를 넣으면서도 self라는 인자를 매개변수에 넣어야 하기에 익명 함수를 활용한 것이고요.]
라고 답변해주신것을 보았는데,
그렇다면 run 메서드에 bind를 사용하여 requestAnimationFrame에서 this값이 변경되는 문제를 해결할 때는 왜
self.rafId = requestAnimationFrame(self.run.bind(self));
가 되었는지 궁금합니다.
여기서도 함수 자체를 넣기 위해서는
requestAnimationFrame(function() {self.run.bind(self)})
일거 같은데 아니라서요
self.run.bind(self)는 함수를 호출하여 리턴한 값이 아닌 함수 자체를 나타내는 건가요?
답변 1
1
bind 함수 자체가 실행의 결과로 함수의 복제본을 리턴하기 때문이랍니다~
지정한 this를 사용해서 변경한 원래 함수의 복제본을 리턴해주어서, 결국 그 자리에 새로운 함수를 넣은 것이 됩니다.
왼쪽/오른쪽 동작시 딜레이 문제
0
109
1
변수 범위 관련 질문
0
120
1
perspective 문의
0
113
1
생성자 함수를 클래스 함수로 변경 하고 this 오류 관련
0
165
1
스크롤이 중간 위치에 있을 때 창의 크기를 변환하면 생기는 문제
0
131
1
animation이벤트 질문이요!
0
80
1
resize handler에서 질문이 있습니다.
0
120
1
카드 뒤집힐 때 F가 보인 이유
0
159
1
3d 뒤집기 추가효과
0
225
1
전진! 3D 스크롤 21 강의 질문
1
179
1
eventlistener 질문
0
159
1
zMove 를 1000으로 설정하는 이유에 대하여.
0
178
1
[정보-23강] ES6 class 문법으로 공부하시는 분들!! 화살표 함수로도 시도해보셔요!
1
203
1
동적으로 html 생성 후 이벤트 위임 질문 있습니다.
0
279
1
rotateY()에서 deg에 따른 차이
0
205
1
코드 작성 순서
0
284
1
이미지가 없는데 첨부파일을 다운 받는 방법이 있나요??
1
402
1
'이벤트 위임 보강 영상'에 있는 예제 html이 안 보입니다
0
284
2
섹션5 자바스크립트 이벤트 다루기 질문
1
263
1
[#전진! 3D 스크롤 11] mousePos 공식 질문 있습니다!
0
432
2
css 는 직접 작성을 해야하는걸까용?
0
331
1
translateZ 에 px 이 아닌 vw 로 값을 주신 이유가 있을가요?
0
365
2
house 부분에도 width , height 부분을 꽉 차게 주신 부분이 제가 이해한게 맞는지 궁금합니다.
0
312
2
left:-400vw 가 아닌 translateZ(100vw); 을 입력하신 이유가 궁금합니다.
0
313
2





