프로토타입 상속
객체를 확장하고 싶을 때 사용한다.
__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 는 호출 위치와 상관이 없이 언제나 . 앞에 있는 객체이다.
'모던 자바스크립트 튜토리얼' 카테고리의 다른 글
[SOPT]JS 스터디 6주차 에러 핸들링, 프로미스, async await (0) | 2023.05.27 |
---|---|
SOPT 자스 스터디 4주차 (1) | 2023.05.14 |
[SOPT] JS 스터디 3주차 (1) | 2023.05.06 |
[SOPT] JS 스터디 2주차 (2) | 2023.04.22 |
[SOPT] JS 스터디 1주차 (0) | 2023.04.09 |
댓글