모던 자바스크립트 튜토리얼
SOPT 자스 스터디 5주차 프로토타입, 콜백, 프로미스
치우치지않는
2023. 5. 21. 15:06
프로토타입 상속
객체를 확장하고 싶을 때 사용한다.
__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 는 호출 위치와 상관이 없이 언제나 . 앞에 있는 객체이다.