← 질문 목록
#78깊이 0
속성이 없을 때 엔진은 어디까지 찾는가?
객체의 자체 속성을 먼저 보고, 없으면 내부 프로토타입을 따라 같은 키를 찾는다. 일치할 때까지 반복하며 체인의 끝인 null에 닿으면 undefined가 된다.
객체→자체 속성
키가 있는지 확인한다
키 없음→프로토타입
같은 키를 찾는다
키 계속 없음→상위 프로토타입
null까지 반복한다
하위 객체에 같은 키가 있으면 상속 속성을 가린다. 대입은 보통 자체 속성을 만들지만 상속된 setter나 쓰기 금지 속성이 있으면 결과가 달라진다.
class의 인스턴스 메서드는 prototype에 둔다. static 메서드는 클래스 생성자 자체에 두며 각 위치에서 같은 속성 탐색 규칙을 따른다.