JS-0702 - JavaScript Completo ES6 - Get e Set

Atribuindo e acessando propriedades de objetos
Em JavaScript, utilizamos set e get para manipular propriedades de objetos, onde set permite a definição de um valor para uma determinada propriedade e get permite a associação de uma propriedade a uma função que necessite de acesso.
Na maioria dos casos, settersegetterssão utilizados em conjunto, criando uma pseudo propriedade. Podemos definir comportamentos diferentes de get e set para um método.
Ao utilizar o método get em um objeto, definimos o que será retornado deste, onde this pode ser utilizado para retornar valores computados ou a propriedade em si. Já o set, permite a atribuição de um valor passado como parâmetro e internamente este valor será associado à propriedade definida. Automaticamente, quando acessarmos a propriedade do objeto será retornado um valor, caso à mesma propriedade seja definido um valor, este será processado pelo set do objeto. Ex:
Observação: o underline é uma convenção para indicar que as propriedades são privadas, mas não altera nenhuma funcionalidade da propriedade.
Valores estáticos
Quando é definido apenas o método get de uma propriedade ele é tido como um valor estático, que não será possível mudar. No exemplo anterior, ao realizar a atribuição de um valor para à propriedade "fullName", o valor não será atribuído no objeto:
Valores estáticos são muito utilizados em constantes matemáticas, evitando assim sua adulteração.
O método set também pode ser utilizado isoladamente, permitindo que diferentes getters utilize o valor passado neste set para processamento, devolvendo o dado computado de formas diversas. A propriedade que tem somente o set será retornada como undefined caso seja acessada, pois não há método de acesso. Ex:
Classes
Uma classe retorna um objeto e assim como em um objeto, as classes podem ter métodos de get e set, permitindo o encapsulamento das propriedades. Ex:
Com o set podemos modificar apenas parte do elemento de get. Neste ponto que o underline é utilizado para a definição de variáveis privadas.