본문 바로가기
코드스테이츠

1/13 일일정리 클래스와 인스턴스

by 강물둘기 2023. 1. 13.

객체지향 프로그래밍

하나의 모델이되는 청사진을 만들고(클래스 class) 그 청사진을 바탕으로한 객체(Instance Object)를 만드는 프로그래밍 패턴

 

https://riverpigeon.tistory.com/60

 

객체지향 프로그래밍과 함수형 프로그래밍

프로그래밍 패러다임? 하나의 프로그램을 개발하는데는 다양한 방법이 있다. 개발자는 이러한 다양한 방법중에 개발 목표나 환경에 따라 다양한 방식으로 프로그래밍을 할 것이다. 이처럼 다양

riverpigeon.tistory.com

클래스와 인스턴스

클래스(class, 어원: classification)는 객체 지향 프로그래밍(OOP)에서 특정 객체를 생성하기 위해 변수 메서드를 정의하는 일종의 틀(template)이다. 객체를 정의하기 위한 메서드와 변수로 구성된다. - 위키백과

클래스로 만들어진 객체를 인스턴스(Instance)또는 인스턴스 객체 라고 부른다.

클래스와 인스턴스, 출처: wiki.hash.kr

 

클래스라는 붕어빵 틀을 만들고, new 키워드를 사용하여 인스턴스(붕어빵)를 찍어낼 수 있다.

한번 틀을 만들면 유사한 객체를 수없이 찍어낼 수 있기 때문에 재사용성 측면에서 효율적이다.

 

기존에는(ES5까지) 생성자 함수를 사용하여 인스턴스를 만들어냈다.

function Person(name, age, country) {
  this.name = name;
  this.age = age;
  this.country = country;
  Person.prototype.sayHi = function () {
    console.log(`Hi my name is ${this.name} from ${this.country}`);
  };
}

let henna = new Person('Henna',19,'America');
henna.sayHi();		// 'Hi my name is Henna from America'

 

ES6에서 class 문법이 도입되면서 class 를 이용하여 인스턴스를 생성할 수 있다.

class Person {
  constructor(name,age,country){
    this.name = name;
    this.age = age;
    this.country = country;
  }
  sayHi () {
    console.log(`Hi my name is ${this.name} from ${this.country}`);
  };
}

let kim = new Person('Kim',20,'Korea');
kim.sayHi();		// 'Hi my name is Kim from Korea'

 

Class 문법이 추가된 이유는 좀 더 가독성이 좋고( 메서드를 정의할 때 prototype 키워드를 붙이지 않아도 된다.) Class 기반의 프로그래밍 언어 사용자가 Javascript에 적응하기 편하도록 하기 위해서 라고 한다.

 

 

댓글