더북(TheBook)

callbackSpy가 기록한 호출 흔적은 한 데 모아 순회한다. call 객체에는 args라는 배열 프로퍼티가 있는데, 호출 시 건네받은 인자는 다 여기에 보관된다. 그러면 call.args 첫 번째 인자가 해당 attendee와 일치하는지 비교하여 두 번째 테스트 목적, 즉 콜백에 인자를 제대로 넘겨 호출하는지 확인할 수 있다.

iterate 함수의 테스트 코드를 작성했으니 이제 이 함수를 구현할 차례다. 4장에서 forEach 함수는 자바스크립트 배열의 프로퍼티로 사용할 수 있으며, 배열 원소 각각에 대해 실행할 콜백 함수(원소는 콜백 함수의 첫 번째 인자로 전달)를 전달할 수 있다고 했던 걸 기억할 것이다.

attendeeCollection.iterate 함수에도 forEach 함수가 완벽한 구현 도구다. 예제 5-3은 attendeeCollection의 전체 구현부다.

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