해결된 질문
작성
·
499
0
다른 질문에서도 있었는데 this.onClickBtn('바위')가 왜 함수가 아닌지 이해가 안됩니다.
이전에 했던 반응속도에서는 onClick에서 () => 없이 바로
this.onClickScreen을 걸어주었는데 두개의 차이점을 모르겠습니다.
조금 더 자세한 설명 부탁드려요~
강의는 너무 잘 보고 있습니다 ^0^
답변 3
2
()가 붙으면 return값이 들어간다고 보시면 되고, ()가 안 붙으면 함수 그 자체가 값으로 들어갑니다.
this.onClickBtn('바위')는 함수를 실행한거라 return값을 봐야하는데 return 값도 함수인 것입니다.
1
this.onClickBtn('바위')는 함수입니다.
리액트에서 onClick 자리에는 함수가 들어가야 합니다.
this.onClickScreen은 함수입니다. this.onClickBtn도 (고차)함수입니다. this.onClickBtn('바위')도 함수입니다. 그래서 셋 다 onClick에 넣을 수 있긴 합니다. 다만 this.onClickBtn은 ('바위')로 호출을 해서 return되는 함수를 넣는게 목적상 맞습니다. 애초에 고차함수를 쓰는 이유가 함수를 확장하고싶은데 결과물로는 다시 함수가 나와야해서 사용했던 것입니다.
0
제가 재대로 이해 한건지 모르겠지만 함수에 this.onClickBtn('바위')와 같이 매개변수가 들어오면 이미 함수가 실행된 값이 들어가게 되는거고 this.onClickScreen 은 함수 그 자체가 onClick에 들어가는 개념인가요?
기초 자바스크립트 개념 문제 인것같은데 제가 기본이 너무 약한가 봅니다.. ㅠ