인프런 커뮤니티 질문&답변

으하핳님의 프로필 이미지
으하핳

작성한 질문수

실전 리액트 프로그래밍

useEffect 실전 활용법2

함수(onClick)이 변한다는 것

작성

·

137

1

function MyComponent1 ({onClick}) {
    useEffect(() => {
        window.addEventListener('click',()=>{
            onClick();
        })
    }, [onClick])
}
안녕하세요.강의 너무 잘 보고 있습니다.
1. onClick이 함수이고, 함수가 변한다는 건
함수의 코드 로직이
변한다는 거로 이해하면 되는 걸까요?

답변 3

1

으하핳님의 프로필 이미지
으하핳
질문자

감사합니다! 그러면 함수가 일급객체이고 그렇기에 생성 시마다 매번 다른 reference를 갖기 때문에 서로 다르다 보면 될까요?

연휴 잘 보내세요:)

0

이재승님의 프로필 이미지
이재승
지식공유자

일급이라는 고급 단어를 쓰셨네요!
말씀하신게 맞습니다.

연휴 잘 보내세요~!

0

이재승님의 프로필 이미지
이재승
지식공유자

안녕하세요
로직이 변경되지 않아도 함수가 변할 수 있습니다.
변한다는 말이 좀 모호할 수 있는데요
좀 더 자세하게는 함수가 새로 생성되면서 onClick 이라는 값이 변합니다.

아래 코드를 실행해보면 false 가 출력되는데요
onClick 내용이 변경되지는 않았지만 MyComponent 가 호출될 때마다 onClick 이 새로 생성되면서 그 값이 변하게 됩니다

function MyComponent() {
  function onClick(){};
  return onClick;
}
const f1 = MyComponent();
const f2 = MyComponent();
console.log(f1 === f2);

으하핳님의 프로필 이미지
으하핳

작성한 질문수

질문하기