1
resposta

Freeze

Olá,

Vamos supor que eu quero congelar uma classe, para que o usuario possa modifica-la apenas se usar os metodos disponiveis pela classe.

Por exemplo :

class Conta {
  constructor(titular, conta, saldo){
    this._titular = titular;
    this._conta = conta;
    this._saldo = saldo;

  }
  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
  }

}

Vamos supor que eu congelo a classe

class Conta {
  constructor(titular, conta, saldo){
    this._titular = titular;
    this._conta = conta;
    this._saldo = saldo;
    Object.freeze(this)
  }
  deposita(valor){
    console.log('Valor depositado' + ' ' + valor)
    this._saldo+=valor
....
}

Caso eu queria "depositar" atráves do metodo a classe nao vai permirtir não ? Como poderia fazer que as propriedades ficassem "seguras" mas os metodos funcionassem ?

Não sei se a pergunta ficou clara ou se ela faz sentido ahah, Enfim obrigado pela atenção.

1 resposta

Você quer que as propriedades fiquem com valores fixos?