JS-proxy&defineproperty

topics 200-프론트개발
types 이론
tags

Proxy vs Object.defineProperty

proxy란...

Proxy는 특정 "객체"를 감싸 프로퍼티 읽기, 쓰기와 같은 객체에 가해지는 작업을 중간에서 가로채는 객체로, 가로채진 작업은 Proxy 자체에서 처리되기도 하고, 원래 객체가 처리하도록 그대로 전달되기도 합니다.

defineproperty란..

object의 getter,setter을 다시 설정할수 있는 메서드이다..

비교 요약

특성 Object.defineProperty Proxy
지원 버전 ES5 ES6
적용 대상 특정 속성 전체 객체
중첩된 객체 지원 재귀적으로 설정 필요 중첩된 객체에 대해 일괄 적용 가능
유연성 제한적 매우 유연
성능 속성마다 별도로 설정 모든 속성 접근/변경 가로채기 가능
호환성 오래된 브라우저 지원 오래된 브라우저 미지원

proxy는 속성의 삭제,권한등의 속성도 감지할 뿐만아니라 중첩된 객체에 대해서도 깊은 객체를 지원한다.