더북(TheBook)

둘째, 익명 함수는 디버깅을 매우 어렵게 만든다(첫째보다 훨씬 더 중요한 문제다). 익명 함수는 정의 자체가 이름 없는 함수라서 디버거가 호출 스택에 식별자를 표시할 수 없다. 그림 5-2는 크롬 디버거 도구에서 익명 함수 내부에 설정한 중단점에서 포착한 화면이다.

►그림 5-2

 

크롬은 좌측에 대기 상태인 중단점을, 우측에 호출 스택(의 익명 함수)을 표시한다. 참조할 함수명이 없는 관계로 이 함수의 실행 콘텍스트를 분간하기 어렵고 결과적으로 디버깅 자체가 녹록하지 않다.

익명 콜백이 몇 다발 나오면 디버깅은 한층 더 곤란해진다. 주어진 코드가 실행 중인 콘텍스트의 전체 그림을 보려면 어쩔 수 없이 호출 스택의 항목(익명 함수) 하나하나가 간직한 수수께끼를 풀어야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.