개발자
안녕하세요, Javascript에서 함수의 인자는 arguments라는 배열로 알고 있습니다. 하지만 실제 배열이 아니라 유사 배열 객체임을 알게 됐는데요, arguments는 어째서 유사 배열 객체 형태를 띠는건가요? 이로 인해 얻는 이득이 뭔지도 궁금합니다! 감사합니다.
답변 2
안녕하세요! 저도 이 질문을 보기 전까지는 arguments에 대한 아무 생각이 없었는데요. 궁금해서 한 번 찾아봤습니다 :) 우선 가장 그럴싸한 답변을 stackoverflow에서 찾았는데요. (무려 12년전 글이네요) (https://stackoverflow.com/questions/3242485/why-isnt-a-functions-arguments-object-an-array-in-javascript) 이 답변에 따르면, arguments는 초기 ECMAScript 표준이 발표됐을 때부터 고려된 기능이라고 합니다. 그리고 그때는 Array.prototype 이 상당히 단순했고 제한적이었다고 하네요. 그래서 arguments는 Object.prototype을 상속받아서 생성하고, 필요한 기능만 추가했다고 합니다. 이후 ECMAScript은 발전을 했고 Array.prototype도 여러가지 기능이 추가되면서 저희가 알고 있는 것이 되었는데요. arguments를 Array로 바꾸자는 제안도 ES5 제안서에 있었지만, ES3과의 하위 호환성을 고려해서 거절되었다고 하네요.
익명
작성자
2022년 11월 27일
친절한 답변 감사합니다!! 도움이 됐어요
익명
작성자
2022년 11월 27일
.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!