Alguém poderia me explicar melhor a função e o funcionamento dessa parte do código?
Object.defineProperty(target, key, {
get: getter
});
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Alguém poderia me explicar melhor a função e o funcionamento dessa parte do código?
Object.defineProperty(target, key, {
get: getter
});
Fala ai Arthur, tudo bem? A função defineProperty vai criar uma nova propriedade para algum objeto.
A mesma possui a seguinte sintaxe:
Object.defineProperty(obj, prop, descriptor)Onde:
obj: O objeto no qual será definida a propriedade.prop: O nome da propriedade que será definida ou modificada.descriptor: O descritor para a propriedade que será definida ou modificada.No seu caso:
Object.defineProperty(target, key, {
get: getter
});O que ela está fazendo é criando uma nova propriedade cujo valor está dentro do key, para o objeto que está referenciado pelo target e sobrescrevendo o método get dela (key).
Espero ter ajudado.
Opa muito obrigado!
Magina Arthur, sempre que precisar não deixe de criar suas dúvidas.
Abraços e bons estudos.