let a = Object.create(b)
이렇게 하면, a는 b의 모든 요소를 물려받는다.
a의 프로토타입으로 b를 넣는 방법으로!
object 에서 부모가 가진 요소를 그대로 물려받는 방법 1. constructor / 2.Object.create() / 3.class
var 부모= { name : 'kim', age: 50};
var 자식 = Object.create(부모);
console.log(자식); //{} 출력됨
console.log(자식.name, 자식.age); //kim 50 출력됨.
자식.age = 20;
console.log(자식); //20 출력 //직접 할당한 것임으로.
var 손자 = Object.create(자식);
console.log(손자.name, 손자.age) //kim, 20 출력됨.
console.log(자식); 을 했을때에, {} 출력되는 것을 확인할 수 있다.
{name : 'kim', age : 50}이 나올줄 알았는데 말이다.
이유는, 자식 에는 object 를 할당한 적이 없다.
자식 이라는 변수에 prototype 를 부모 라는 객체로 해준다는 말 이기 때문이다.
그렇지만 console.log(자식.name, 자식.age); 을 하면 kim 50 출력된다.
자식에서 .name을 찾는데 없으니 자식의 prototype에 숨겨둔 부모 에서 .name을 찾는거다.
손자 라는 변수의 경우도 마찬가지 이다.
손자.name 은 부모의 부모 요소 까지 상속가능하기 때문에 나온 결과.
'JS (Java Script)' 카테고리의 다른 글
extends() 와 super() (0) | 2023.09.07 |
---|---|
class ES6 문법 상속기능 (0) | 2023.09.07 |
프로토타입 ( prototype ) 과 __proto__ 차이 명확하다 // 상속 구현하기 (0) | 2023.09.07 |
constructor function 생성자 함수 (0) | 2023.09.07 |
데이터 타입에 따른 복사 _ Primitive / Reference data type (1) | 2023.09.07 |