개발자

자바스크립트에서 객체를 만들 때 함수와 Class 중에서 어떤 걸 사용해야 하나요?

2022년 12월 13일조회 260

예를 들어서 이름, 나이, 키, 몸무게 이렇게 4가지 속성을 가진 사람을 나타내는 객체를 만들어야 하는 상황이라고 할 때 Person 함수 const Person = (name, age, height, weight) => { return { name, age, height, weight }; } 클래스 class Person { constructor(name, age, gender) { this.name = name; this.age = age; this.gender = gender; } } 위처럼 두가지로 표현할 수 있는데, 객체를 생성하는 `Person()`함수를 만드는 것보다 클래스를 사용해야 하는 이유가 있을까요..?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

ginger님의 프로필 사진

어떤 걸 사용하느냐에 대한 부분은 해당 코드의 목적에 따라 달라집니다. 현재 예시에서는 함수만 쓰셔도 무방합니다. 왜냐하면 단순히 인자 값을 넣고 해당 인자 값을 이용하여 새로운 객체로 반환해주는 간단한 작업을 하기 때문입니다. 클래스는 간략히 말씀드리면 클래스 내에 여러 메소드와 데이터(맴버 변수)를 적절히 관리 및 재사용을 하기 위함에 있습니다. 예를 들어 클래스 내에서 만들어진 메소드를 호출했을 때 반환되는 데이터는 어딘가에 저장되어야하는 데 이 데이터가 클래스 내에 저장될 수 있다면 관리하기 편하겠죠. 이처럼 클래스 내에 메소드 뿐만 아니라 변수까지도 관리해주는 것이 클래스의 목적입니다. 함수와 클래스의 차이를 검색해보시는 것도 좋을 것 같습니다. (FYI. 자바스크립트는 prototype 객체지향 언어로 JS 상의 클래스는 prototype의 syntax sugar(문법적 설탕)일 뿐입니다. 즉 클래스 문법도 내부적으로는 prototype 기반으로 동작합니다. 관심 있으시면 이 내용도 한번 찾아보시면 좋을 것 같습니다)

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!