티스토리 뷰
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이라니 매우 놀라웠다.ㅎㅎ..
'Programming Skills > es6' 카테고리의 다른 글
ES6 - 윤지수교수님 오프라인 강의 (0) | 2018.05.11 |
---|---|
es6 - Slice() vs Spilce() (0) | 2018.05.03 |
es6 - Arrow function (0) | 2018.04.14 |
ES6-Destructuring 활용 json 파싱 (0) | 2018.03.27 |
ES6-간단히 객체 생성하기, Destructuring array, Destructuring object (0) | 2018.03.04 |
댓글