TIR: 완벽가이드 1. 코어자바스크립트(2) 객체 - 220618

Lumpen·2022년 6월 18일
0

TIR

목록 보기
9/40

객체의 프로퍼티의 이름을 알 수 없는 경우 [] 연산자를 사용

상속

자바스크립트 객체는 고유 프로퍼티들을 가지고 있고, 동시에 해당 객체의 프로토타입 객체로부터 여러 프로퍼티를 상속받는다
객체에서 프로퍼티를 찾을 때 해당 객체에 프로퍼티가 존재하지 않으면
프로토타입 객체에서, 프로토타입 객체에 없으면 프로토타입 객체가 상속받은 프로토타입, 계속 상위 프로토타입으로 올라가면서 찾는다
이 작업은 프로퍼티를 찾거나 prototype이 null이 될 때 까지
반복된다
객체의 프로토타입 속성은 프로퍼티가 계승되는 체인 또는 연결리스트를 생성한다

객체의 프로퍼티에 값을 설정할 때는 해당 프로퍼티에 값을 설정할 수 있는지 프로토타입 체인을 검사한다 상속받은 프로퍼티가 읽기 전용이라면 값을 설정할 수 없다
값 설정이 허용된 경우 값 설정이 이뤄지거나 프로퍼티가 생성된다
하지만 프로토타입 체인은 변하지 않는다
계승된 프로퍼티를 선택적으로 재정의 할 수 있는 것이다

주의해야할 경우

객체 o가 프로퍼티 x를 상속받은 경우, 해당 x가 setter 메소드를 가진 접근자 프로퍼티라면
객체 o에 새 프로퍼티 x가 만들어지는 것이 아니라
상속받은 프로퍼티 x가 가진 setter 메소드가 호출된다
이 때 프로퍼티 x가 정의된 프로토타입 객체에서 호출되는 것이 아니라
객체 o에 호출된다
setter메소드가 새로운 프로퍼티를 정의하게 된다면 객체 o에 추가되고 프로토타입 체인은 변경되지 않는다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글