Baseline Widely available
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.
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 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 Object
, embora eles tenham diferenças sutis entre eles.
Reflect.apply(target, thisArgument, argumentsList)
Chama uma função de destino com os argumentos, conforme especificado pelo parâmetro argumentsList
. Veja também Function.prototype.apply()
.
Reflect.construct(target, argumentsList[, newTarget])
O operador new como uma função. Equivalente a chamada new target(...args)
. Também possui a opção de especificar um prototype
diferente
Reflect.defineProperty(target, propertyKey, attributes)
Similar ao Object.defineProperty()
. Retorna um Boolean
com o valor true
se a propriedade foi definida com sucesso.
Reflect.deleteProperty(target, propertyKey)
O operador 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, undefined
caso contrário.
Reflect.getPrototypeOf(target)
Igual ao Object.getPrototypeOf()
.
Reflect.has(target, propertyKey)
O operador in como função. Retorna um Boolean
indicando se existe uma propriedade própria ou herdada.
Reflect.isExtensible(target)
Igual ao Object.isExtensible()
. Retorna um Boolean
com o valor true
se 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 um Boolean
com o valor true
se a atualização foi bem sucedida.
Reflect.set(target, propertyKey, value[, receiver])
Uma função que atribui valores a propriedades. Retorna um Boolean
com o valor true
se a atualização foi bem sucedida.
Reflect.setPrototypeOf(target, prototype)
Uma função que define o protótipo de um objeto. Retorna um Boolean
com o valor true
se a atualização foi bem sucedida.
const duck = {
name: "Maurice",
color: "white",
greeting: function () {
console.log(`Quaaaack! My name is ${this.name}`);
},
};
Reflect.has(duck, "color");
// true
Reflect.has(duck, "haircut");
// false
Retornando 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 Compatibilidade com navegadores Veja também
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4