Class는 뭐다?
constructor 메소드를 사용해 보다 쉽게 객체를 만드는 공장!
prototype 기반의 객체를 만드는 공장이 있고, (보기쉬움) class 기반의 객체를 만드는 공장이 있다.
// 생성된 객체를 어떻게 초기화?
// 먼저 실행되도록 만들어진 constructor 함수를 class 내에서 구현
class Person {
constructor(name, first, second){
this.name =name;
this.first=first;
this.second=second;
}
sum=()=>{
return 'class : '+(this.first+this.second);
}
}
let kim = new Person('kim',10,20);
kim.sum = function(){
return 'this : '+(this.first+this.second);
}
let lee = new Person('lee',10,10);
console.log("lee.sum()",lee.sum());// 만약 자신(lee)이 sum이라는 객체를 가지지 않는다면,class의 constructor메소드를 따라간다,끝
console.log("kim.sum()",kim.sum());// 먼저 자신(kim)이 sum이라는 객체를 가졌는지를 찾는다, 끝
// lee.sum() class : 20
// kim.sum() this : 30
'Javascript' 카테고리의 다른 글
super 키워드 (0) | 2023.03.12 |
---|---|
Class Inheritance(상속) (0) | 2023.03.12 |
prototype(=유전자: 객체들이 공통적으로 사용하는 속성값) (0) | 2023.03.11 |
Constructor function(=생성자 함수, 객체를 찍어내는 함수) (0) | 2023.03.11 |
this (=나, this가 속해있는 메소드가 속해있는 객체를 가리킴) (0) | 2023.03.11 |