JS (Java Script)
Object.create() ES5 문법. 상속기능 구현.
GABOJOK
2023. 9. 7. 17:23
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 은 부모의 부모 요소 까지 상속가능하기 때문에 나온 결과.