Skip to content

Latest commit

 

History

History
55 lines (41 loc) · 1.06 KB

proxyEReflect.md

File metadata and controls

55 lines (41 loc) · 1.06 KB

Proxy e Reflect

  • Um Proxy é capaz de interceptar diversos tipos de operações em um objeto alvo.
 function createArray() {
   return new Proxy ({}, {

   });
 }

 const languages = createArray();

 languages[0] = "Python";

 languages[1] = "Ruby";

 languages[2] = "JavaScript";
  • Existem métodos, chamados de trap, para diversos tipos de eventos relacionados a um objeto, como:

    • apply
    • construct
    • defineProperty
    • deleteProperty
    • get
    • getOwnPropertyDescriptor
    • getPrototypeOf
    • has
    • isExtensible
    • ownKeys
    • preventExtensions
    • setPrototypeOf
  • O método set é invocado quando uma propriedade é definida no objeto.

  function createArray() {
    return new Proxy ({}, {
      set(target, key, value ) {
        target.length = target.length || 0;
        target.length++;
        target[key] = value; // { '0': 'Python', '1': 'Ruby', '2': 'JavaScript', length: 3 }
      }
    });
  }

  const languages = createArray();

  languages[0] = "Python";

  languages[1] = "Ruby";

  languages[2] = "JavaScript";