인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

윤해은님의 프로필 이미지
윤해은

작성한 질문수

코딩인터뷰를 저격하는 JS 스나이퍼 양성학교

es5로 클래스처럼 상속하기 < 서브 타입 & 슈퍼 타입 >

생성자 함수와 클래스 중 어느 것을 사용하는게 효율적인가요?

작성

·

191

1

면접에서 클래스와 생성자 함수의 차이를 물어보시는 이유가 궁금합니다.

생성자함수와 클래스의 차이점은 문법 차이 말고는 다를게 없는것인가요??

답변 1

2

Hojun Lee님의 프로필 이미지
Hojun Lee
지식공유자

안녕하세요 해은님 답변드리겠습니다!

넵 생성자 함수와 클래스의 차이는 문법의 차이가 가장 크다고 할 수 있습니다.

즉, 생성자 함수를 통해 객체를 생성하는 방법(사용자 정의 타입 선언)의 문법 설탕(syntactical sugar)이 바로 class 선언입니다.

하지만 분명 차이점도 존재하는데요, 대표적으로 함수 선언과 달리 class 선언은 호이스팅 되지 않으며,

class 선언 내의 모든 코드는 엄격 모드(strict mode) 에서 작동한다는 것 등 입니다.

좀 더 구체적으로 확인하고 싶으시다면 babel 트렌스파일러(https://babeljs.io/)를 이용해 class 문법이 es5에서 어떻게 바뀌는지 살펴보실 수 있습니다.
아래 그림은 바벨을 이용해 문법을 es6 에서 es5로 변경시킨것입니다. 참고하시기 바랍니다.

좋은 질문 감사합니다!! :)

윤해은님의 프로필 이미지
윤해은
질문자

설명 감사합니다 강사님 ! 👍🏻

윤해은님의 프로필 이미지
윤해은

작성한 질문수

질문하기