Reflect

Esta tradução está incompleta. Ajude a traduzir este artigo em inglês

{{JSRef}}

Reflect é um objeto nativo que provê métodos para operações JavaScript interceptáveis. Os métodos são os mesmos que o dos manipuladores de Proxy. Reflect não é um objeto de função, então não é construtível.

Descrição

Ao contrário da maioria dos objetos globais, Reflect não é um construtor. Você não pode usá-lo com o operador new ou invocar o objeto Reflect como uma função. Todas as propriedades e métodos do Reflect são estáticos (igual o objeto {{jsxref("Math")}}).

O objeto Reflect provê as seguintes funções estáticas as quais tem os mesmos nomes usados pelos métodos manipuladores de Proxy.

Alguns deste métodos são também os mesmos correspondentes aos métodos em {{jsxref("Object")}, embora eles tenham diferenças sutis entre eles.

Métodos

O objeto Reflect provê as seguintes funções estáticas que possuem os mesmos nomes que os métodos do manipulador de proxy. Alguns desses métodos são iguais aos métodos correspondentes no {{jsxref("Object")}}.

{{jsxref("Reflect.apply()")}}
Chama uma função de destino com os argumentos, conforme especificado pelo parâmetro args. Veja também {{jsxref("Function.prototype.apply()")}}.
{{jsxref("Reflect.construct()")}}
 O operador new como uma função. Equivalente a chamada new target(...args).
{{jsxref("Reflect.defineProperty()")}}
Similar ao {{jsxref("Object.defineProperty()")}}. Retorna um {{jsxref("Boolean")}}.
{{jsxref("Reflect.deleteProperty()")}}
O operador delete como uma função. Equivalente a chamada delete target[name].
{{jsxref("Reflect.get()")}}
Uma função que retorna o valor das propriedades.
{{jsxref("Reflect.getOwnPropertyDescriptor()")}}
Similar ao {{jsxref("Object.getOwnPropertyDescriptor()")}}. Retorna um descritor de propriedade da propriedade dada se existir no objeto, {{jsxref ("undefined")}} caso contrário.
{{jsxref("Reflect.getPrototypeOf()")}}
Igual ao {{jsxref("Object.getPrototypeOf()")}}.
{{jsxref("Reflect.has()")}}
O operador in como função. Retorna um booleano indicando se existe uma propriedade própria ou herdada.
{{jsxref("Reflect.isExtensible()")}}
Igual ao {{jsxref("Object.isExtensible()")}}.
{{jsxref("Reflect.ownKeys()")}}
Retorna uma matriz das chaves de propriedade do próprio objeto de destino (não herdadas).
{{jsxref("Reflect.preventExtensions()")}}
Similar ao {{jsxref("Object.preventExtensions()")}}. Retorna um {{jsxref("Boolean")}}.
{{jsxref("Reflect.set()")}}
Uma função que atribui valores a propriedades. Retorna um {{jsxref ("Boolean")}} que é verdadeiro se a atualização foi bem sucedida.
{{jsxref("Reflect.setPrototypeOf()")}}
Uma função que define o protótipo de um objeto.

Especificações

Especificação Situação Comentário
{{SpecName('ES6', '#sec-reflect-object', 'Reflect')}} {{Spec2('ES6')}} Definição Inicial
{{SpecName('ESDraft', '#sec-reflect-object', 'Reflect')}} {{Spec2('ESDraft')}} Reflect.enumerate foi removido.

Compatibilidade do navegador

{{CompatibilityTable}}

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatChrome(49.0)}} {{CompatVersionUnknown}} {{CompatGeckoDesktop("42")}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatChrome(49.0)}} {{CompatChrome(49.0)}} {{CompatGeckoMobile("42")}} {{CompatNo}} {{CompatNo}} {{CompatNo}}

Veja também

  • The {{jsxref("Proxy")}} global object.
  • The {{jsxref("Proxy.handler", "handler")}} object.