JavaScript

[JS] constructor 정리

잼굴 2022. 5. 19. 22:15

constructor 사용처 : object를 막 복사하고 싶을때 사용함

 

출석부 만드는걸로 예시 들어봄

        let 학생1 = {name : 'kim', age : 15 }
        let 학생2 = {name : 'kim2', age : 15}
        let 학생3 = {name : 'kim3', age : 15}

학생정보를 object로 만드려는데 이렇게 하나하나 만들기 너무 귀찮음 그럴때 constructor 씀

 

 

      function Student() {
        this.name = "Kim";
        this.age = 15;
      }

이게 constructor임. 이거 쓰면 object 무한 생성가능

function쓸때 거의 보통 함수명을 대문자로써줌 (국룰)

 

constructor 안에서 this는 새로 생성되는 object를 뜻함

 

this.name = 'Kim';   => 새로 생성되는 object들의 name속성에는 Kim을 넣어주세요

this.age = 15;   => 새로 생성되는 object들의 age 속성에는 15를 넣어주세요

 

new Student();

이렇게하면 object가 뽑힘

 

let 학생1 = new Student();

진짜 찍어냄

 

 

 

만약 모든 학생 object에 sayHi() 함수도 추가하고 싶다면?

 

      function Student() {
        this.name = "Kim";
        this.age = 15;
        this.sayHi = function () {
          console.log("안녕하세요" + this.name + "입니다");
        };
      }
      
	  let 학생1 = new Student();
      let 학생2 = new Student();
      학생1.sayHi();
      학생2.sayHi();

 

 

잘 작동됨 !

 

 

 

학생을 뽑을때 name을 다르게 설정해보자

 

      function Student(이름) {
        this.name = 이름;
        this.age = 15;
        this.sayHi = function () {
          console.log("안녕하세요" + this.name + "입니다");
        };
      }

함수에 파라미터를 뚫어준다

 

let 학생1 = new Student('Park');
let 학생2 = new Student('Lee');
let 학생3 = new Student();

이름 안넣으면 undefined

 

 

this <<< instance (새로생성되는 object)

'JavaScript' 카테고리의 다른 글

[JS] ES5 ES6 상속기능 사용하기 (create , class)  (0) 2022.05.20
[JS] prototype  (0) 2022.05.20
Arrow function  (0) 2022.05.17
this함수  (0) 2022.05.17
[16장] 프로퍼티 어트리뷰트  (0) 2022.03.08