객체 프로토타입 상속
#
프로토타입 상속#
[[Prototype]] 숨김 프로퍼티해당 객체의 [[Prototype]]
의 값
null
- 다른 객체에 대한 참조
- 참조되는 다른 객체는 해당 객체의 프로토타입이 된다.
- 프로토타입 상속
- 자바스크립트는 object 에서 해당 프로퍼티가 없으면 프로토타입에서 프로퍼티를 찾는다.
__proto__
:[[Prototype]]
값 설정 방법#
__proto__
는[[Prototype]]
용 getter-setter 임__proto__
는 하위 호환성 때문에 사용할 수 있다.Object.getPrototypeOf
Object.setPrototypeOf
를 사용한다.
#
프로토타입 체인프로토타입 체이닝의 제약사항
- 순환 참조는 허용되지 않음.
- 에러발생
__proto__
의 값은 [ 객체 ||null
] 만 가능함. 다른 자료형은 무시- 객체에는 오직 하나의
[[Prototype]]
만 존재함.
#
this 가 나타내는 것.this 는 .
앞에 있는 객체가 된다
메서드는 공유 되지만, 객체의 상태는 공유되지 않는다.
#
for...in 반복문상속 프로퍼티도 순회 대상에 포함된다.
Object.prototype
에 있는 모든 메서드의 enumerable
플래그는 false
이므로 for..in
에서 출력되지 않는다.
- 키값을 순회하는 대부분의 메서드는 상속 프로퍼티를 제외하고 동작한다.
Object.keys
Object.values