[자바스크립트] 클래스와 인스턴스 등..

따봉도치 개발자·2023년 3월 15일
0

클래스와 인스턴스

객체 지향 프로그래밍은 객체를 만들어내는 틀이 클래스이고 틀로 인해 만들어진 객체들을 인스턴스라고한다. 클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다.
쉽게 비유를 하자면 클래스는 겉모양을 미리 만들어 놓고 찍어낼 수 있는 '틀'이다. 틀 안에 용액을 넣는 과정이 코딩이라면, 만들어진 결과물이 인스턴스라고 할 수 있다. 코딩하는 과정에서 용액의 색이라던지 용액의 종류에 따라 서로 다른 요소를 가진 인스턴스가 만들어진다.

참고링크

new 키워드

new 정의? 함수 내부의 정의된 내용을 실행하여 주는 의미라 볼 수 있다.
언제 필요로 하냐? 생성자 함수로 만든 객체에 유사한 객체 여러 개를 쉽게 만들고 싶을 때 사용한다.

생성자 함수

생성자 함수는 위에서 배운 클래스인스턴스로 만든 함수를 가르키고 불러오기 위해선 new 키워드를 필요로한다.

ES5 클래스 작성 문법


위에 사진에서 본 거처럼 ES5는 일반적으로 함수를 만들 때 처럼 사용한다. 여기서 this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수이다.
프로토타입 객체에 속성이나 메서드를 선언하고 생성자 함수를 참고해서 인스턴스를 만들 수 있다.

ES6 클래스 작성 문법


ES6와 ES5 차이는 위 사진에 보이는 것처럼 함수명에 class 함수명 constructor(매개변수)을 선언해준다. 쉽게 말해 ES5는 생성자(constructor) 함수와 프로토타입 객체를 따로 선언해 주었다면, ES6는 클래스(class)안에 생성자(constructor) 함수와 프로토타입 객체를 모두 선언한다.

profile
Explain Like I'm 5

0개의 댓글