Olá, tudo bem? Quero saber pq o retorno do meu saldo dá NaN e pq o cliente retorna undefined
segue o código:
import {Cliente} from "./Cliente.js"
import { ContaCorrente } from "./ContaCorrente.js"
const cliente1 = new Cliente()
cliente1.nome = 'Alice'
cliente1.cpf = 11122233345
cliente1.rg = 12345678
const cliente2 = new Cliente()
cliente2.nome = 'Ricardo'
cliente2.cpf = 11121132243
cliente2.rg = 99999999
const conta1 = new ContaCorrente()
conta1.cliente = cliente1
conta1.agencia = 102
console.log(conta1)
const conta2 = new ContaCorrente()
conta2.cliente = cliente2
conta2.agencia = 1001
console.log(conta2)
conta2.depositar(100)
conta2.depositar(-1)
console.log(conta2.saldo)
conta2.sacar(200)
console.log(conta2.saldo)
conta2.depositar(500)
conta2.transferir(200, conta1)
conta1.transferir(100, conta2)
console.log(conta2.saldo)
console.log(conta1.saldo)
console.log(cliente1)
console.log(cliente2)
console.log(conta1)
console.log(conta2)
console.log(cliente1.conta1)
import { Cliente } from "./Cliente.js"
export class ContaCorrente{
agencia
#cliente
//ASSESSORES - pode servir para proteger atributos
set cliente(novoValor){
if(novoValor instanceof Cliente){
this.#cliente = novoValor
}
}
get cliente(){
return this.#cliente
}
//Private Field - # na frente torna o atributo inacessível
// https://github.com/tc39/proposal-class-fields#private-fields
#saldo
//ASSESSOR
get saldo(){
return this.#saldo
}
//MÉTODO(FUNCTION) SACAR
sacar(valor){
if(this.#saldo >= valor){
this.#saldo -= valor;
return valor;//serve como break
}
}
depositar(valor){
//EARLY RETURN
if(valor <= 0) return;
this.#saldo += valor;
}
// COMPOSIÇÃO DE CLASSES
transferir(valor, conta){
const valorSacado = this.sacar(valor)
conta.depositar(valorSacado)
conta.cidade = 'São Paulo '
}
}
export class Cliente{
nome
cpf
rg
}