Não entendi muito bem essa parte do _ antes do nome das propriedades que seriam privadas.
Entendo que é para identificar que são privadas, já que, conforme explicado pelo professor, no JS não tem propriedades realmente privadas como no Java, por exemplo, mas mesmo não existindo como realmente deixá-las privadas, usar ou não o _ pra efeitos práticos de mudar o valor do atributo não teria diferença, correto?
Não to entendendo o uso delas dentro dos getters e setters.
Outra dúvida era sobre o cliente e o cliente, mas acho que entendi.
Edit: acho que entendi o porque usamos o contaCorrente.cliente = cliente1. Como aprendi POO no Java, os métodos Setters e Getters tinham o set e o get no proprio nome. Aqui ele usou o setter como "cliente" apenas.
Tem algum problema ou "contra-indicação" de alguma convenção eu usar o nome set setCliente(){}. Porque eu acho que ficaria mais fácil saber o que é um método e o que é uma propriedade dessa maneira. edit: Entendi porque deixar com o mesmo nome:
Quando eu coloco: contaCorrente.saldo = 200 ou contaCorrente._saldo = 200,
Como o JS é dinâmico, no primeiro caso, se eu não tiver um getter com o nome .saldo e eu codificar isso, ele vai criar uma nova propriedade do objeto, por isso que colocamos o nome do getter como sendo o nome da propriedade, mas sem o _?
No segundo caso, eu consigo alterar a propriedade, mesmo tendo criado um setter, isso que não to entendendo no JS.
Por exemplo: consigo alterar o saldo usando contaCorrente.saldo = 100 e também contaCorrente.saldo = 100, sendo assim, qual o sentido do setter, se ele não tá funcionando e eu consigo acessar diretamente pelo nome da propriedade?