Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 proxy() 객체의 용도는 무엇입니까?

<시간/>

프록시()

ECMAScript 6에서 도입된 새로운 기능 중 하나 프록시()입니다. 물체. 프록시() 개체는 기본 작업(예:속성 조회, 할당, 열거, 함수 호출 등)에 대한 사용자 지정 동작을 정의하는 데 사용됩니다.

프록시() 개체에는 3개의 핵심 용어가 포함됩니다.

1) 핸들러 - 트랩이 포함된 플레이스홀더 개체입니다.

2) 트랩 - 함정은 재산 접근을 제공합니다.

3) 타겟 - 프록시가 가상화하는 객체입니다.

구문

var p = new Proxy(target, handler);

다음 예에는 'p'라는 개체가 있으며 일부 속성이 있습니다. 객체에 정의되지 않은 속성을 실행하려고 하면 출력에 표시된 대로 undefined가 실행됩니다.

예시

<html>
<body>
<script>
   var p = {
      Name: 'Ram kumar',
      Age: 27
   };
   document.write(person.Name);
   document.write("</br>");
   document.write(person.Age);
   document.write("</br>");
   document.write(person.designation);
</script>
</body>
</html>

출력

Ram kumar
27
undefined


proxy() 일 때 를 사용하면 정의되지 않은 출력을 제거할 수 있습니다. 프록시() "get을 사용하여 알 수 없는 속성을 트랩하려고 합니다. " 키워드. proxy() 내부에 정의된 핸들러 , 타겟 통과 "get " 함정.

다음 예에서 처음에 개체 'p'에는 지정 및 역할이 없습니다. 그러나 나중에 proxy() 'get을 사용하여 개체와 속성을 포착했습니다. ' 및 할당되지 않은 속성이 출력과 같이 표시되었습니다.

예시

<html>
<body>
<script>
   var p = {
      Name: 'Ram kumar',
      Age: 27
   };
   var handler = {
      get: function(target, prop) {
         return prop in target ? target[prop] : 'Content developer';
      }
   };
   var prox = new Proxy(p, handler);
   document.write(prox.Name);
   document.write("</br>");
   document.write(prox.Age);
   document.write("</br>");
   document.write(prox.designation);
   document.write("</br>");
   document.write(prox.role);
</script>
</body>
</html>

출력

Ram kumar
27
content developer
content developer