객체지향 # 1

재웅·2023년 3월 30일
0

오늘의 정리

목록 보기
4/52
post-thumbnail

constructor

object자료를 많이 만들고 싶을때 사용한다

  • 기계만들기
//var 학생1 = { name : 'Kim', age : 15 };

function 기계(){
  this.name = 'Kim';
  this.age = 15;
}

object자료 복사 기계 만들땐 function하나 만들고{}안에 this.~ = ~ 해주면된다
위 코드에서 this.name = 'Kim' / this.age = 15 이부분임
여기서 this는 기계에서 새로생성되는 오브젝트를 뜻한다 (instance라고 불림)

  • this.name = 'Kim'이 뭔소리냐?

그냥 간단한 object 자료 추가/수정문법

새로생성되는 오브젝트.name은 'Kim'을 넣어주세요~ 라는 뜻

this를 이용해서 새로 복사될 object가 가질 값들을 디자인해놓으면 된다

  • 오브젝트 뽑기
//var 학생1 = { name : 'Kim', age : 15 };

function 기계(){
  this.name = 'Kim';
  this.age = 15;
}

var 학생1 = new 기계();
var 학생2 = new 기계();

오브젝트를 뽑을때는 new라는 키워드를 쓰고 오른쪽에 기계(함수명/constructor)이름을 쓰면
기계로부터 새로운 오브젝트 뽑아낼 수 있다.
그걸 변수에 저장하면 자유롭게 사용 가능


  • 오브젝트에 함수 넣기 가능
var 학생1 = { 
    name : 'Kim', 
    age : 15 
    sayHi : function(){
        console.log('안녕하세요' + this.name + ' 입니다');
    }
};

학생1.sayHi(); // 안녕하세요 kim 입니다 
  • 그렇다면 constructor 기계에도 넣기 가능
function 기계(){
  this.name = 'Kim';
  this.age = 15;
  this.sayHi = function(){
    console.log('안녕하세요' + this.name + ' 입니다');
  }
}
var 학생1 = new 기계();
var 학생2 = new 기계(); // 여기서 학생2에 obj 가 이미 복사됨

학생2.sayHi(); // obj에서 sayhi 부분 뽑는겨
  • constructor 기계에 파라미터 추가 가능
function 기계(이름){
  this.name = 이름;
  this.age = 15;
  this.sayHi = function(){
    console.log('안녕하세요' + this.name + ' 입니다');
  }
}
var 학생1 = new 기계('Park');
var 학생2 = new 기계('Kim');

기계라는 constructor가 가진 name, age 속성들을 그대로 물려받아서 오브젝트를 하나 뽑아주는게 재산 물려주는 상속과 비슷하다고 해서 상속이라고 부릅니다. 그래서 상속해주는것은 부모, 상속받는 오브젝트들은 자식이라고 비유

profile
오늘의 정리

0개의 댓글