Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
Reflect
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since setembro de 2016.
Reflect é um objeto nativo que provê métodos para operações JavaScript interceptáveis. Os métodos são os mesmos que o dosmanipuladores de Proxy.Reflect não é um objeto de função, então não é construtível.
In this article
Descrição
Ao contrário da maioria dos objetos globais,Reflect não é um construtor. Você não pode usá-lo com ooperador new ou invocar o objetoReflect como uma função. Todas as propriedades e métodos doReflect são estáticos (igual o objetoMath).
O objetoReflect provê as seguintes funções estáticas as quais tem os mesmos nomes usados pelos métodosmanipuladores de Proxy.
Alguns deste métodos são também os mesmos correspondentes aos métodos emObject, embora eles tenham diferenças sutis entre eles.
Métodos
Reflect.apply(target,thisArgument,argumentsList)Chama uma função de destino com os argumentos, conforme especificado pelo parâmetro
argumentsList. Veja tambémFunction.prototype.apply().Reflect.construct(target,argumentsList[,newTarget])Ooperador new como uma função. Equivalente a chamada
new target(...args). Também possui a opção de especificar umprototypediferenteReflect.defineProperty(target,propertyKey,attributes)Similar ao
Object.defineProperty(). Retorna umBooleancom o valortruese a propriedade foi definida com sucesso.Reflect.deleteProperty(target,propertyKey)Ooperador delete como uma função. Equivalente a chamada
delete target[name].Reflect.get(), "Reflect.get(target,propertyKey[,receiver])"}}Uma função que retorna o valor da propriedade. Funciona como obter uma propriedade de um objeto (
target[propertyKey]) como uma função.Reflect.getOwnPropertyDescriptor(target,propertyKey)Similar ao
Object.getOwnPropertyDescriptor(). Retorna um descritor de propriedade da propriedade dada se existir no objeto,undefinedcaso contrário.Reflect.getPrototypeOf(target)Igual ao
Object.getPrototypeOf().Reflect.has(target, propertyKey)Ooperador in como função. Retorna um
Booleanindicando se existe uma propriedade própria ou herdada.Reflect.isExtensible(target)Igual ao
Object.isExtensible(). Retorna umBooleancom o valortruese o destino (parâmetro target) for extensível.Reflect.ownKeys(target)Retorna uma matriz das chaves de propriedade do próprio objeto de destino (não herdadas).
Reflect.preventExtensions(target)Similar ao
Object.preventExtensions(). Retorna umBooleancom o valortruese a atualização foi bem sucedida.Reflect.set(target,propertyKey,value[,receiver])Uma função que atribui valores a propriedades. Retorna um
Booleancom o valortruese a atualização foi bem sucedida.Reflect.setPrototypeOf(target,prototype)Uma função que define oprotótipo de um objeto. Retorna um
Booleancom o valortruese a atualização foi bem sucedida.
Exemplos
>Verificando se um objeto contém determinadas propriedades
const duck = { name: "Maurice", color: "white", greeting: function () { console.log(`Quaaaack! My name is ${this.name}`); },};Reflect.has(duck, "color");// trueReflect.has(duck, "haircut");// falseRetornando as próprias chaves do objeto
Reflect.ownKeys(duck);// [ "name", "color", "greeting" ]Adicionando uma nova propriedade ao objeto
Reflect.set(duck, "eyes", "black");// returns "true" if successful// "duck" now contains the property "eyes: 'black'"Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-reflect-object> |