1
resposta

Congelando um atributo

No codigo abaixo, caso eu indique o Object.freeze(this) no constructor, o saldo nao atualiza no meu método de deposito. Caso eu não indique o Object.freeze(this), eu consigo acessar à propriedade através do conta._saldo =;

NESSE CASO NAO SEI COMO FARIA

class Conta {

    constructor(titular, conta) {

        this._titular = titular;
        this._conta = conta;
        this._saldo = 0.0;

    }

    deposita(valor) {
        console.log('Valor depositado: ' + valor);
        this._saldo+=valor; 

    }

    get saldo(){
        return this._saldo;
    }
    get titular(){
        return this._titular;
    }
    get conta(){
        return this._conta;
    }

}
1 resposta

Fala ai Ruan, tudo bem? Acho que ainda não chegou na parte, mas, você pode utilizar o Proxy para resolver esse problema.

Ele vai ser ensinado mais à frente no curso ou nas próximas partes que são continuação desse atual.

A título de curiosidade, hoje o JavaScript já tem suporte a private fields, ou seja, não precisamos mais nos preocuparmos com isso.

Dá uma olhada aqui: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Class_fields

Procure na seção Private fields.

O suporte ainda não está em todos navegadores, será necessário utilizar o Babel por exemplo para garantir um suporte e compatibilidade melhor.

Espero ter ajudado.