class와 prototype

JuhyeokLee·2022년 2월 26일
0

Typescript

목록 보기
8/12
post-thumbnail

클래스란?

클래스는 주로 인스턴스를 만들어주는 역할을 한다. 이렇게 공통적인 행위나 상태를 클래스로 작성하는 것을 추상화라고도 한다. 이 클래스를 상속받은 하위 클래스들은 각자 자신의 역할에 맞는 행위를 따로 정의 가능하며, 부모의 메소드를 오버라이딩 하여 자식 클래스에 맞게 사용할 수 있다.

class Person{
	name; //js에서는 없어도 상관없음(strict 모드라면 필요)
    age; //js에서는 없어도 상관없음(strict 모드라면 필요)
	constructor(name, age){
    	this.name = name;
        this.age = age;
    	console.log("생성되었습니다.");
    }
}

const juhyeok = new Person("juhyeok", '27');

프로토타입

자바스크립트는 프로토타입 기반 언어이며, 모든 객체가 속성을 상속받기 위해서 프로토타입 객체(__proto__)를 가진다. 상위 프로토타입 객체로부터 메소드와 속성을 상속받는 것을 프로토타입 체인이라 한다. 우리가 객체나 배열을 만들고 해당하는 api를 사용할 수 있는 것도 상위 프로토타입에 메소드들이 정의되어 있기 때문이다.

const user = { name : "capt", age: 30};
const admin = {};

admin.__proto__ = user; // admin.__proto__ = { name : "capt", age: 30}
admin.role = "admin";
console.log(admin) // { role : "admin"}
console.log(admin.__proto__) // { name : "capt", age: 30}

프로토타입을 활용하여 class기능을 구현한 것이다.

타입스크립트에서의 class

class Person {
  name: string;
  age: number;

  constructor(name: string, age:number) {
  	this.name = name;
  	this.age = age;
  }
}
const capt = new Person('Steve', 100);
profile
성장하는 개발자가 되겠습니다~

0개의 댓글

관련 채용 정보