Entendendo Getters and Setters em JavaScript

da ES2015, temos a possibilidade de usar getters e setters para definir propriedades em nossos objetos. Neste post, vamos entender como eles funcionam.

Este conteúdo publicou primeiro na minha newsletter, na semana depois de publicar o boletim público no meu blog, se Você quer ser o primeiro a ler se inscrever

banner

antes de ler Este post eu recomendo ler:

  • entendendo isso em javascript
  • entender os tipos em javascript
  • Entendendo os objetos em JavaScript

Ready?

Neste momento você deve saber o comportamento e os atributos do Propriedades dos objetos em JavaScript.

Neste ponto, ele deve ser esclarecido que os objetos têm três tipos de propriedades:

  • Propriedades de dados: Propriedades normais, que contêm dados.
  • propriedades do Accessor: Propriedades que alteram o comportamento padrão de ] e ]
  • _Internal Propriedades: _ propriedades de linguagem interna, como ], ] ou ] entre outros.

Quais são os getters e setters

uma função que obtém um valor de uma propriedade é chamado Getter e um que define o valor de um Propriedade É chamado de setter.

Este recurso foi implementado no ES2015, e pode modificar a operação normal de estabelecer ou obter o valor de uma propriedade, é conhecida como propriedades do Accessor.

Operação

Às vezes queremos valores com base em outros valores, para que os acessadores de dados sejam bastante úteis.

Para criá-los, usamos as palavras-chave Get e definir

const obj = { get prop() { return this.__prop__; }, set prop(value) { this.__prop__ = value * 2; },};obj.prop = 12;console.log(obj.prop); //24

Criamos um objeto, com uma única propriedade, que tem um getter e um setter. Desta forma toda vez que definimos um valor para o suporte, ele multiplicará por dois.

Nota: Use o suporte por convenção, mas não implica que seja um valor especial, este é um valor normal.

Outra maneira de criar uma propriedades de acesso é explicitamente usando objeto.defineproperty

const obj = {};Object.defineProperty(obj, //objeto target 'prop', //nombre propiedad { enumerable: true, configurable: true, get prop() { //getter return this.__prop__; }, set prop(value) { //setter this.__prop__ = value * 2; }, });obj.prop = 12;var atr = Object.getOwnPropertyDescriptor(obj, 'prop')console.log(atr); 

a vantagem que temos em Desta forma, é que podemos definir os atributos que queremos ter a propriedade.

Recursos

A propriedade Property Accessor, só tem os atributos configuráveis e _onumerable, _Im vemos seus atributos nós vai ver isso.

Isso nos leva ao valor não pode ser sobrescrito se o setter da função não for usado ( Recomenda-se definir tanto setter e getter).

Se o modo rigoroso não for usado e tentar modificar o valor será um erro silencioso.

Outro recurso importante, é que, se for definido u NA Propriedade com o mesmo nome em um escopo superior da cadeia protótipo, o acessador de propriedade, será a propriedade que predomina.

Vamos ver um último exemplo

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *