Os acessadores são um recurso para modificar a forma como acessamos uma propriedade de um objeto. Com o acessador get podemos modificar a forma como uma propriedade é lida e com o acessador set podemos modificar a forma como uma propriedade é alterada via atribuição.
Para criarmos adicionarmos um get em uma classe utilizamos o mesmo formato de um método precedido pela palavra get:
class Wallet {
#amount
constructor() {
this.#amount = 100.99 * 100
}
get amount() {
return this.#amount / 100
}
}
const myWallet = new Wallet()
console.log(myWallet.amount)
Da mesma forma podemos utilizar o set, mas com um parâmetro que se refere ao valor a ser atribuído:
class Wallet {
#amount
#username
constructor() {
this.#amount = 100.99 * 100 // 10099
}
get amount() {
return this.#amount / 100
}
set username(newUsername) {
if (typeof newUsername === 'string') {
this.#username = newUsername
} else {
console.log('username must be of type string')
}
}
get username() {
return this.#username
}
}
const myWallet = new Wallet()
console.log(myWallet.amount)
myWallet.username = "Isaac"
console.log(myWallet.username)
myWallet.username += " Pontes"
console.log(myWallet.username)
myWallet.username = 52002
console.log(myWallet.username)