Proxy 트랩은 객체 연산별 관문이다

읽기, 쓰기, 존재 확인, 삭제는 각각 다른 trap으로 들어온다. Reflect를 함께 쓰면 가로챈 뒤 원래 의미를 보존하기 쉽다.

연산trapReflect 위임대표 용도
읽기getReflect.get(target, key, receiver)기본값, 접근 로그, 반응성 추적
쓰기setReflect.set(target, key, value, receiver)값 검증, 권한 검사
존재 확인hasReflect.has(target, key)private key 숨김, 정책 적용
삭제deletePropertyReflect.deleteProperty(target, key)삭제 허용 범위 제한

trap 안에서 target이 아니라 proxy를 다시 읽으면 무한 재귀가 생기므로 위임 경로를 분명히 둔다.