TypeScript/TypeScript - 기초부터 실전까지

12. 클래스 | 프로토타입

DEV-Front 2023. 10. 8. 23:13
반응형

ES2015 (ES6)에서 나옴

class PersonData{
    // 클래스로직
    constructor(name, age){ 
        this.name = name;
        this.age = age;
        console.log('생성 되었습니다');
    }
}

var classSeho = new PersonData('세호', 30); // 생성 되었습니다
console.log(classSeho);

자바스크립트 프로토타입 소개

 

- 자바스크립트에서 지양하는 프로토타입을 이용한 상속

undefined 였던 admin객체에 .__proto__ 로 user 객체를 넣어줬더니

admin 객체에서 user 객체의 데이터를 받아왔다.

 

상속말고 admin에 role를 추가 했을때 admin객체가 role이 된다.

그러면서 user에서 정의한 속성도 사용할 수 있다.


자바스크립트의 프로토타입 활용 사례 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object

 

Object - JavaScript | MDN

Object 클래스는 JavaScript의 데이터 유형 중 하나를 나타냅니다. 다양한 키 모음 및 더 복잡한 엔티티들을 저장하는 데 사용됩니다. 객체는 Object() 생성자 또는 객체 초기자 / 리터럴 구문를 통해 생

developer.mozilla.org


프로토 타입과 클래스와의 관계

// ES2015 (ES6)에서 나옴

function PersonFun(name, age){
    this.name = name;
    this.age = age;
}
var cap = new PersonFun('캡틴', 200);

class PersonData{
    // 클래스로직
    constructor(name, age){ 
        this.name = name;
        this.age = age;
        console.log('생성 되었습니다');
    }
}

var classSeho = new PersonData('세호', 30); // 생성 되었습니다
console.log(classSeho);

personFun과 PersonData는 같은것 

반응형