JS

class 함수

gurwhddl 2022. 10. 1. 21:30

class를 이용하는것이 진짜로 constructor 신문법 - 전에 했던거랑 기능차이는 크게 없는데 더 보기쉽게 표현

class 이것도 object를 반복적으로 만들고 싶을 때 사용하면됨

 

class 부모 {

   constructor( ) {

            this. age = '1' 

            this.인사 = function( ) {console.log(`${this.age}살입니다`}

   }

}

 

let 자식 = new 부모( ) // 해주면 끝 . 아까랑 똑같이 자식 찍어보면 저 속성가진 object나옴

당연히 파라미터도 이용해서 만드는것도 쌉가능

이것도 똑같이 함수도 추가할 수 있음

그런데 이걸 constructor 괄호에 말고 그 밑 괄호에 쓰면 출력되는게 좀 달라짐

 

class 부모 {
constructor(){
this.name = 'lee';
this. = 'daejeon';

}
sayHi() {
console.log('sdfsdf');
}
}

let 자식 = new 부모(); // 이렇게 하면 자식이라는 변수를 찍어봤을 때 저 sayHi라는 함수는 안나옴 - 부모의 prototype에 저장되었기 때문
 
당연히 자식.sayHi 하면 나옴 - 그냥 부모.prototype.sayHi = function ~~ 한거랑 똑같은 의미를 가짐
 
이렇게 만들어놓으면 모든 자식들이 계속 쓸 수 있으니까 편하고 관리도 편하다고 함
 
부모.prototype ~~~ 이거랑 자식.__proto__ ~~ 이거랑 똑같은거임
이 __proto__ 대신에 Object.getPrototypeOf(자식) 하면 자식이 어떤 prototype을 상속받고 있는지 찍어줌.