• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

함수(onClick)이 변한다는 것

20.10.02 14:41 작성 조회수 96

1

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

답변 3

·

답변을 작성해보세요.

1

으하핳님의 프로필

으하핳

질문자

2020.10.02

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

연휴 잘 보내세요:)

0

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

연휴 잘 보내세요~!

0

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

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

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