게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
Javascript 클로저 질문
게시물ID : programmer_6635짧은주소 복사하기
작성자 : 꽃보다탱구
추천 : 0
조회수 : 468회
댓글수 : 4개
등록시간 : 2014/11/20 18:06:29
옵션
  • 본인삭제금지
안녕하세요 자바스크립트 늅늅이 질문거릴 들고 왔습니다 ㅠ.ㅠ
https://github.com/getify/You-Dont-Know-JS 에서 중간에 이해안되는 부분이 있어서요

Colored By Color Scripter
1
2
3
4
5
6
7
8
9
10
function process(data) {
    // codes
}
var someReallyBigData = { .. };
process( someReallyBigData );
 
var btn = document.getElementById"my_button" );
btn.addEventListener"click"function click(evt){
    console.log("button clicked");
}, false );

someReallyBigData가 계속 살아있는걸 문제 삼는 부분인데요 click 함수가 해당 스코프를 클로저로
가지고 있기 때문에 프로그램 실행 내내 someReallyBigData가 사라지지 않는다고 해요.

클로저가 참조값하나 들고 있으면서 이미 생명주기가 끝난 스코프를 가져오는거잖아요?

addEvenetListener가 리스너를 등록하고 btn 내 프로퍼티(click)가 참조하고 있어서 고놈이 지
위 전체 스코프를 가지고 있는거 아닌가용?

문제삼는게 빅데이터라 그냥 대충 설명한건지..
아니면 제 생각대로 이벤트를 등록하는 부분이 계속 스코프를 잡고 있는건지 혹은 제가 모르는 다른 
클로저 건덕지가 있는지 궁금합니다!!
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호