Pelo explicação, aparentemente quando se define os getters e setters, pode-se acessar as propriedades e modificá-las utilizando esses métodos, porém a sintaxe fica como de propriedade. Não daria na mesma coisa se as propriedades fossem públicas?
Pelo explicação, aparentemente quando se define os getters e setters, pode-se acessar as propriedades e modificá-las utilizando esses métodos, porém a sintaxe fica como de propriedade. Não daria na mesma coisa se as propriedades fossem públicas?
Oi Lucas,
Um objeto com propriedades públicas pode ser facilmente modificado por qualquer parte do código; por exemplo, um objeto const obj = { saldo: 100 }
, se estiver "disponível", pode ser alterado apenas com a linha obj.saldo = 1000
.
Então a função dos getters e setters é justamente "proteger" as propriedades, pois é possível implementar internamente verificações e validações (por exemplo) que impeçam uma modificação como a que foi feita acima.
Quando temos um setter implementado, para o restante do código a forma de acessar e modificar a propriedade é a mesma na aparência (obj.saldo = valor
, por exemplo), porém internamente não é a mesma - pode haver dentro do setter uma validação para saber se a parte do código tem permissão para fazer a alteração, etc.
Espero ter ajudado!
Bons estudos ;)
Entendi, esclareceu muito bem! Obrigado.