콜백함수와 return의 사용 이유가 뭔가요? - JS Iterator

제가 다른 글에서 쓴 답글이 거의 똑같은 답변이 되리라 생각합니다.

다만 두번째 경우엔 변수의 범위(주로 영어로 scope라고 많이 함)가 자바스크립트 언어에서 어떻게 작용하는지 이해가 필요한 부분입니다.

randomNumbers라는 변수는 두번째의 경우 Array.prototype.filter를 호출하는 객체와, 그 filter 함수 안에서 호출되는 함수의 매개 변수 randomNumbers가 있습니다. 이 경우 익명 함수 안의 randomNumbers가 내부 스코프로서 작용합니다.

그렇다면 변수 접근의 우선권이 자바스크립트에선 내부 스코프에게 있으므로, 외부의 randomNumbers는 함수 안에서 아무런 변화가 없습니다. 물론 함수 안에서 명령을 실행도 어떠한 충돌이 없고요.

다만 외부의 randomNumbers를 내부 스코프에서 접근하고 싶다면, 자바스크립트에선 변수 이름을 다르게 해서 외부 변수에 접근하는 방법밖에 없습니다.