클래스와 인스턴트

김재현·2022년 11월 18일
1

유닛 진행!

목록 보기
8/18

객체 지향 프로그래밍의 기초를 살펴보자!

객체 지향 프로그래밍은 하나의 모델이 되는 청사진을 만들고 그 청사진을 바탕으로 객체를 만드는 프로그래밍 패턴이다!
풀어서 설명하자면 설계는 동일하지만 모델이 다르다라 볼 수 있다. 객체라는 개념은 객체 지향 프로그래밍과 무관하게 이미존재하기 때문에 용어를 잘 구분해야한다.
청사진을 바탕으로 한 객체는 인스턴스 객체라고 부르는데 줄여서 인스턴스라고 부르고 청사진은 클래스라고 부른다.

인스턴스 객체 === 인스턴스;
청사진 === 클래스;

만드는법

일반적인 함수를 정의하듯 만든다. (함수를 이용하는 방법이 조금 다르다.)

새로운 인스턴스를 만들어보자

ES5) function Car (brand, name, color){}
ES6) class Car { constructor(brand, name, color){} }

그 전에 위에 ES5와 ES6의 차이를 잘 기억하자. 최근에는 ES6를 자주 쓰는데 ES6에서 새로운 문법인 class가 추가되었기 때문이다.

class Car {
constructor(brand, name, color) {

위에 함수는 객체지향 프로그래밍에서 생성자(constructor) 함수 라 부른다. 인스턴스가 만들어질 때 실행되는 코드다.
참고로 return값을 만들지 않는다.

let avante = new Car ('hyundai' ,'avante', 'black');

인스턴스를 만들땐 new 키워드를 사용한다. 사용 즉시 생성자 함수가 실행되고 변수에 클래스의 설계를 가진 새로운 객체, 인스턴스가 할당된다.

각각의 인스턴스는 클래스의 고유한 속성과 메서드를 갖게 된다.

car의 고유한 속성과 메서드를 갖는다는 말이다!

새로운 키워드의 등장

this 라는 키워드가 등장한다. 객체지향 프로그래밍에서 자주 등장하기 때문에 알아보자!

this는 인스턴스 객체를 의미한다.

parameter로 넘어온 브랜드, 이름, 색상 등은 인스턴스 생성 시 지정하는 값이다. 위처럼 this에 할당하는 것은 만들어진 인스턴스에 브랜드, 이름, 색상을 부여한단 의미다.

새로운 용어

Js에서만 유효한 새로운 용어가 있다.

protoptype : 모델의 청사진을 만들때 쓰는 원형객체
constructor : 인스턴스가 초기화될 때 실행하는 생성자 함수
this : 함수가 실행될때 해당 scope에 생성되는 고유한 실행으로 context new 키워드로 인스턴스를 생성했을땐 해당 인스턴스가 this의 값이 된다!

새로운 사실

여태 만들고 사용했던 배열은 Array의 인스턴스이었다!
배열 메서드 검색을 위해 mdn에 가면
Array.prototype.push() 라 써있는 이유가 있던것!

profile
티스토리로 이사갔습니다. => https://lobsterhyeon.tistory.com/

0개의 댓글