다른 객체에 대한 Proxy
객체를 생성하여 해당 객체의 대행 역할을 한다.
Proxy
객체는 대행할 객체의 프로퍼티를 읽고 다양한 옵션으로 재정의할 수 있다. 또한 함수의 실행을 가로채서 결과를 변경할 수도 있다. 이렇게 Proxy
객체는 해당 객체의 직접적인 역할이 아닌 변칙적인 역할이 필요한 경우에 사용될 수 있다. 일종의 래퍼 객체와 같은 역할을 한다고 볼 수 있다.
Proxy
객체는 생성자 함수를 지원하지만 자신의 [[Prototype]]
은 존재하지 않는다.
새로운 Proxy
객체를 생성한다.
Proxy
객체를 운용하기 위해 사용되는 대상 객체를 핸들링하기 위한 객체의 구성 멤버를 나타낸다.
필요에 따라 다음의 메소드로 구성된 핸들러 객체를 Proxy
생성자에게 제공해야 한다.
함수 호출 작업에 사용되는 대상 객체의 [[Call]]
내부 메소드에 대한 트랩(trap)이다.
new
연산자와 같은 작업에 사용되는 객체 내부 메소드 [[Construct]]
에 대한 트랩(trap)이다.
Object.defineProperty()
와 같은 작업에서 사용되는 객체 내부 메소드 [[DefineOwnProperty]]
에 대한 트랩(trap)이다.
객체 내부 메소드 [[Delete]]
에 대한 트랩(trap)이다.
프로퍼티 접근자와 같은 작업에서 사용되는 객체의 내부 메소드 [[Get]]
에 대한 트랩(trap)이다.
Object.getOwnPropertyDescriptor()
와 같은 작업에서 사용되는 객체 내부 메소드 [[GetOwnProperty]]
에 대한 트랩(trap)이다.
Object.getPrototypeOf()
와 같은 작업에서 사용되는 객체의 내부 메소드 [[GetPrototypeOf]]
에 대한 트랩(trap)이다.
in
연산자와 같은 연산에 사용되는 객체의 내부 메소드 [[HasProperty]]
에 대한 트랩(trap)이다.
Object.isExtensible()
와 같은 작업에서 사용되는 객체의 내부 메소드 [[IsExtensible]]
에 대한 트랩(trap)이다.
Object.keys()
, Reflect.ownKeys()
등과 같은 작업에서 사용되는 객체의 내부 메소드 [[OwnPropertyKeys]]
에 대한 트랩(trap)이다.
Object.preventExtensions()
와 같은 작업에서 사용되는 객체의 내부 메소드 [[PreventExtensions]]
에 대한 트랩(trap)이다.
프로퍼티 접근자를 사용하여 프로퍼티를 설정하는 작업에서 사용되는 객체의 내부 메소드 [[Set]]
에 대한 트랩(trap)이다.
Object.setPrototypeOf()
와 같은 작업에서 사용되는 객체 내부 메소드 [[SetPrototypeOf]]
에 대한 트랩(trap)이다.
정적(static) 멤버를 의미하며 인스턴스(instance)에 상속되어 사용할 수 없고 오로지 하위를 포함하여 객체(object) 또는 인터페이스(interface) 자신에서 해당 멤버에 접근이 가능하다.
취소 가능한 Proxy
객체를 생성한다.