클래스와 인스턴스

hyxoo·2023년 3월 15일
0

코드스테이츠

목록 보기
17/37
post-thumbnail

📝 [Section2_Unit2] 객체지향 프로그래밍 #1

📌 클래스와 인스턴스

객체지향 프로그래밍에 쓰이는 객체(자바스크립트의 object와는 다르다)를 클래스(class)라고 한다. 클래스를 통해 만들어내는 객체는 인스턴스(instance)가 된다.
클래스는 인스턴스가 만들어질 때 실행되며, 이런 함수를 생성자(constructor) 함수라고 한다.

✔️ 클래스 정의

일반적인 다른 함수와 구별되게 하기 위해 클래스명은 대문자로 시작하고, 일반 명사 느낌으로 짓는다.

function Person(name) {...}

📎 ES6 이후 추가된 새로운 클래스 정의 방법

class Person{
	constructor(name){
      ...
    }
}

✔️ 클래스 사용, 인스턴스 만들기

인스턴스가 만들어질 때 즉시 생성자 함수가 실행되며 변수에 인스턴스가 할당된다. 이렇게 만들어진 인스턴스는 클래스의 고유한 속성과 메서드를 그대로 갖는다.

let instance1 = new Person('hyesoo');
let instance2 = new Person('Jimmy');

📌 속성과 메서드

속성(property)은 객체 내부에 존재하는 이며 자료형이 함수인 속성은 메서드(method)라고 한다. 사람을 예로 들면 name, country를 속성으로 갖고 eat을 메서드로 갖게할 수 있다.

✔️ 속성과 메서드 정의하기 - ES5 문법

function Person(name,country){
    this.name = name;
    this.country = country;
}

Person.prototype.eat = function() {
    return `${this.name}가 음식을 먹었습니다.`
}

✔️ 속성과 메서드 정의하기 - ES6 문법

class Person{
	constructor(name, country){ 
        this.name = name;
        this.country = country;
    }    
    eat(){
        return `${this.name}가 음식을 먹었습니다.`
    }
}

❗️사용하기

const instance1 = new Person('hyesoo', 'Korea');
console.log(hyesoo.country); // Korea
console.log(hyesoo.eat()); // hyesoo가 음식을 먹었습니다.
profile
hello world!

0개의 댓글