본문 바로가기
모던 자바스크립트 튜토리얼

SOPT 자스 스터디 5주차 프로토타입, 콜백, 프로미스

by 치우치지않는 2023. 5. 21.

프로토타입 상속 

객체를 확장하고 싶을 때 사용한다. 

__proto__ 를 사용해 객체를 재사용할 수 있다. 

let animal = {
  eats: true,
  walk() {
  	console.log('토끼는 걷는다');
  }
};
let rabbit = {
  jumps: true,
  __proto__: animal,
};

// 프로퍼티 eats과 jumps를 rabbit에서도 사용할 수 있게 되었습니다.
alert( rabbit.eats ); // true (**)

이때 __proto__ 의 값은 객체나 null 만 가능하다. 

프로토타입은 읽기 전용이기 때문에, 프로퍼티를 추가하거나 수정하기 위해선 객체에 직접해야 한다. 

예를 들어서 rabbit 에 walk 가 들어있다고 생각해 보자. 만약 이 walk 를 수정하고 싶다면, proto 로는 해결하지 못하고, 직접 넣어야 한다. 

let animal = {
  eats: true,
  walk() {
    /* rabbit은 이제 이 메서드를 사용하지 않습니다. */
  }
};

let rabbit = {
  __proto__: animal
};

rabbit.walk = function() {
  alert("토끼가 깡충깡충 뜁니다.");
};

rabbit.walk(); // 토끼가 깡충깡충 뜁니다.

this 

this 는 호출 위치와 상관이 없이 언제나 . 앞에 있는 객체이다. 

 

댓글