Computer >> Máy Tính >  >> Lập trình >> Javascript

Việc sử dụng đối tượng proxy () trong JavaScript là gì?

Proxy ()

Một trong những tính năng mới được ECMAScript 6 giới thiệu là proxy () vật. Proxy () đối tượng được sử dụng để xác định hành vi tùy chỉnh cho các hoạt động cơ bản (ví dụ:tra cứu thuộc tính, gán, liệt kê, gọi hàm, v.v.).

Proxy () đối tượng bao gồm 3 điều khoản chính

1) trình xử lý - Nó là một đối tượng giữ chỗ chứa các bẫy.

2) bẫy - Bẫy cung cấp quyền truy cập tài sản.

3) mục tiêu - nó là một đối tượng mà proxy ảo hóa.

Cú pháp

var p = new Proxy(target, handler);

Trong ví dụ sau, có một đối tượng được gọi là 'p' và nó có một số thuộc tính. Khi chúng tôi cố gắng thực thi các thuộc tính không được xác định trong đối tượng thì không xác định sẽ được thực thi như được hiển thị trong đầu ra.

Ví dụ

<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>

Đầu ra

Ram kumar
27
undefined


Khi proxy () được sử dụng, chúng tôi có thể loại bỏ đầu ra không xác định. Proxy () cố gắng bẫy thuộc tính không xác định bằng cách sử dụng " get "từ khóa. Trình xử lý, được xác định bên trong proxy () , sẽ vượt qua mục tiêu và tên khóa được yêu cầu trong " get "bẫy.

Trong ví dụ sau, ban đầu đối tượng 'p' không có chỉ định và vai trò. Nhưng sau đó khi proxy () đến với hình ảnh, đối tượng và các thuộc tính của nó đã bị mắc kẹt bằng cách sử dụng ' get 'và các thuộc tính chưa được gán đã được hiển thị như được hiển thị trong đầu ra.

Ví dụ

<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>

Đầu ra

Ram kumar
27
content developer
content developer