진스
Class 본문
728x90
객체 생성방법중 하나로 es6때 추가
생성자 함수 이용
// 기존 생성자함수 이용
const User = function (name, age) {
this.name = name;
this.age = age;
this.showName = function(){ //객체안에 메소드가 있음
console.log(this.name);
}
}
const mike = new User("Mike", 27) //생성자 함수명은 첫글자 대문자
Class 이용
// Class 이용
class User2 {
constructor(name, age){ //객체를 만들어 주는 생성자 메소드
this.name = name //객체 초기화 값들
this.age= age
}
showName(){ //class 메소드는 프로토타입에 저장됨
console.log(this.name);
}
}
const Jane= new User2('Jane',29)
상속
// 생성자 함수는 prototype을 이용
// class 는 extends 이용
class Farm {
constructor(kind,ea){ // {} 빈객체 만듬
this.kind = kind // this로 위 {}를 가리킴
this.ea = ea
}
work() {
console.log(`${this.kind} ${this.ea}개 심었어요.`);
}
}
class Who extends Farm {
constructor(kind,ea) { //들어온 인수를 야래 super 를 통해 부모로 전달
super(kind,ea) // 항상 부모 class의 constructor를 실행해야함 빈객체만들고 하는 과정 생략되므로
this.day ="낮에"
}
where() {
console.log(`밭에`);
}
work() {
super.work() //overriding 부모의 메소드 가져옴
console.log(`안심었어요.`);
}
}
const farmer = new Who('당근', 6)
console.log(farmer);
728x90
'JavaScript' 카테고리의 다른 글
URL 파라미터 값 가져오기 (?뒤에값을 이용해 =뒤에 값을 출력) (0) | 2022.06.11 |
---|---|
논리 연산자 || / && / ?? / ?. (or, and, 옵셔널 체이닝,Nullish coalescing) (0) | 2022.06.02 |
상속, 프로토타입 (prototype) (0) | 2022.05.19 |
call, apply, bind (0) | 2022.05.19 |
구조분해 할당 , 나머지 매개변수 , 전개구문 (0) | 2022.05.18 |
Comments