티스토리 뷰

es6- class를 통한 객체생성



| es6의 클래스에 대해 알아봅시다.


http://poiemaweb.com/es6-class 참고

  • 자바스크립트는 프로토타입 기반(prototype-based) 객체지향형 언어다. 비록 다른 객체지향 언어들과의 차이점에 대한 논쟁들이 있긴 하지만, 자바스크립트는 강력한 객체지향 프로그래밍 능력들을 지니고 있다.

  • 프로토타입 기반 프로그래밍은 클래스가 필요없는(class-free) 객체지향 프로그래밍 스타일로 프로토타입 체인과 클로저 등으로 객체 지향 언어의 상속, 캡슐화(정보 은닉) 등의 개념을 구현할 수 있다.

  • 우선,ES5에서는 생성자 함수와 프로토타입을 사용하여 객체 지향 프로그래밍을 구현하였다. 그리고 ES6의 클래스는 기존 프로토타입 기반 객체지향 프로그래밍보다 클래스 기반 언어에 익숙한 프로그래머가 보다 빠르게 학습할 수 있는 단순명료한 새로운 문법을 제시하고 있다.

아래에서 클래스를 구현한 es5클래스패턴과 es6에서의 클래스 패턴을 살펴보자. 
// ES5 Class 패턴
function Health(){
 this.name = name;
}
Health.prototype.showHealth = function(){
 console.log(this.name+"님 안녕하세요");
}
const h = new Health("test");
h.showHealth();

// ES6 Class 패턴
// 아래는 클래스가 아니라 function이다. 모습만 클래스르 띄고 있다. 위와 유사한 코드이다.
class Health{
 constructor(name, lastTime){
   this.name =name;
   this.lastTime =lastTime;
}
 showHealth(){
   console.log(this.name+"님 안녕하세요")
}
}

const myHealth = new Health("test");
myHealth.showHealth();

아래는 myHealth라는 변수를 콘솔로 찍은 결과 값이다.

프로토타입안에 show health가 들어있는것을 확인 할 수 있다. 그리고 Health의 타입을 살펴보면,

위와 같이 function인것을 확인 할 수 있다. 클래스 객체의 타입이 function이라니 매우 놀라웠다.ㅎㅎ..




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함