So código não tem a propriedade freeze como o codigo entende que aquilo só pode ser acessado pelo método get e na hora de atribuir o paco e não entende que não pode mostrar quando dá o console.log?
So código não tem a propriedade freeze como o codigo entende que aquilo só pode ser acessado pelo método get e na hora de atribuir o paco e não entende que não pode mostrar quando dá o console.log?
Olá, Cezar.
Lembre-se que a propriedade titular
do objeto conta
é um getter que acessa o atributo _titular
:
get titular() {
return this._titular;
}
}
A linha
conta.titular = 'Paco';
tenta colocar um novo valor para o getter titular
.
Tentar mudar o valor de um getter não tem efeito. Um getter é somente para leitura, conforme o trecho A sintaxe get da aula 2. Não dá erro, mas também não faz nada!
essa parte eu entendi. Só não entendi como o javascript interpreta isso como getter se a declaração de _variavel é apenas uma conveção pq ele disponibiliza o
console.log(conta.titular) = mingal e conta.titular = null ou erro sem tratamento
Um getter é somente pra leitura.
Mas você dar um "olé" nele setando a variável _titular
.
Se você fizer:
var conta = new Conta('Mingau', 171);
conta._titular = 'Paco';
console.log(conta.titular);
será impresso "Paco".
o se o underline é uma convenção o nome da variável nao é: underlineTitular Então como o javascript entende qual é o conta.titular na hora de dar o console.log(conta.titular); ? Ele entende que a variável é somente leitura pois tem um metodo
get titular() {
return this._titular;
}
}
e se eu fizer um mêtodo chamado obter
obter titular() {
return this._titular;
}
}
exatamente igual a estrutura padrão vai ser um getter? e nao vai ter como alterar sem usar o mêtodo
Não vai ser um getter. Só usando get
mesmo pro método ser somente pra leitura.
O obter
desse jeito vai dar erro...