인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

hotsunny님의 프로필 이미지

작성한 질문수

따라하며 배우는 자바스크립트 A-Z

Event Delegation

주석처리한 buttons가 작동하는 이유

작성

·

29

0

8분즈음에 buttons 선언한 것을 주석처리하고 buttonList만 남겼는데 왜

buttons.addEventListener가 작동하는지 궁금해요

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. hotsunny님, 질문해 주셔서 감사합니다.

주석처리한 코드가 작동하는 이유는 JavaScript의 클로저 덕분일 확률이 높습니다. 클로저는 함수가 선언된 렉시컬 환경을 기억하여 함수가 호출된 이후에도 그 환경을 사용할 수 있도록 합니다. 따라서 주석 처리 전에 buttonsbuttonList 변수에 할당이 되었다면, 이후 주석처리를 하더라도 할당된 값 자체는 이벤트 리스너가 동작하도록 남아 있을 수 있습니다.

관련 질문으로는 다음과 같은 질문이 존재합니다:

  1. 관련 질문: 자바스크립트에서 클로저가 무엇인가요?

  2. 관련 질문: 변수와 상수의 차이점

여기에서 buttonList가 소유하고 있는 참조나 클로저가 어떤 형태로 남아있는지에 대해, 코드 구조를 이해하실 수 있도록 작은 예제를 찾아보시기를 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

hotsunny님의 프로필 이미지

작성한 질문수

질문하기