리액트를 공부하며 유튜브를 클론 코딩하던 중 혼자 해결하지 못하고 있던 부분이 있어서 강사님 코드와 비교해보니
//내 코드
onClick = {onVideoClick(video)}
//강사님 코드
onClick = {()=> onVideoClick(video)}
위 코드처럼 강사님은 화살표 함수를 사용하셨다
이해가 잘 안가서 Q&A 게시판을 살펴보니 나와 같은 고민을 하는 사람이 많아서 신기했다ㅎㅎ
결론적으로 위 두 코드의 차이점은 ↓
//onVideoClick을 호출하고 리턴되는 값 자체를 value1에 할당하는 것
const value1 = onVideoClick(video)
//onVideoClick을 호출할 함수를 value2에 할당하는 것, 참조값을 전달하는 것
const value2 = () => onVideoClick(video)
간단히 설명하면 위 코드는 결과값을 전달하는 것이고 밑에 코드는 함수의 참조값을 전달하는 것이다
별 차이 없는거 같은데 완전 다른거였다니.... 헷갈리지 않게 엘리님 영상보면서 함수 부분 다시 정리하고 넘어가야겠다!!!
https://www.youtube.com/watch?v=-cAPq25P-68
'JAVASCRIPT' 카테고리의 다른 글
[JS] for 반복문: for..in 과 for..of의 차이 (0) | 2022.05.28 |
---|---|
[JS] callback (0) | 2022.03.07 |
[JS] ES6 : Spread Operatot (스프레드 연산자) (0) | 2022.02.02 |
[JS] const를 조작할 수 있는 경우 (0) | 2022.02.02 |
[JS ] 백틱(` `) 사용법 (0) | 2022.02.02 |