Reflect.defineProperty()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
O método estático Reflect.defineProperty()
é como o Object.defineProperty()
, mas retorna um Boolean
.
Experimente
Sintaxe
Reflect.defineProperty(target, propertyKey, attributes)
Parâmetros
target
-
O objeto de destino onde será definida a propriedade.
propertyKey
-
O nome da propriedade a ser definida ou modificada.
attributes
-
Os atributos para a propriedade que está sendo definida ou modificada.
Valor de retorno
Um Boolean
indicando se a propriedade foi ou não definida com êxito.
Erros
Descrição
O método Reflect.defineProperty
permite a adição precisa ou a modificação de uma propriedade em um objeto. Para mais detalhes veja o Object.defineProperty
, que é semelhante.
Exemplos
Usando Reflect.defineProperty()
let obj = {};
Reflect.defineProperty(obj, "x", { value: 7 }); // true
obj.x; // 7
Verificando se a definição da propriedade foi bem-sucedida
Com o Object.defineProperty
, que retorna um objeto se for bem-sucedido ou lança um TypeError
, você usaria um bloco try...catch para detectar qualquer erro que ocorreu ao definir uma propriedade.
Como Reflect.defineProperty
retorna um status de sucesso booleano, você pode usar apenas um bloco if...else
aqui:
if (Reflect.defineProperty(target, property, attributes)) {
// success
} else {
// failure
}
Especificações
Specification |
---|
ECMAScript Language Specification # sec-reflect.defineproperty |
Compatibilidade com navegadores
BCD tables only load in the browser