• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

onClick = {() => 함수}가 잘 이해되지 않습니다.

20.11.13 18:16 작성 조회수 316

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

tunion00님의 프로필

tunion00

질문자

2020.11.16

제가 재대로 이해 한건지 모르겠지만 함수에 this.onClickBtn('바위')와 같이 매개변수가 들어오면 이미 함수가 실행된 값이 들어가게 되는거고 this.onClickScreen 은 함수 그 자체가 onClick에 들어가는 개념인가요?

기초 자바스크립트 개념 문제 인것같은데 제가 기본이 너무 약한가 봅니다.. ㅠ