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 ContaCorrenteRicardo = new ContaCorrente()
ContaCorrenteRicardo.agencia = 1001
ContaCorrenteRicardo.cliente = cliente2
const conta2 = new ContaCorrente()
conta2.cliente = cliente1
conta2.agencia = 102
console.log(conta2)
ContaCorrenteRicardo.depositar(100)
ContaCorrenteRicardo.depositar(-1)
console.log(ContaCorrenteRicardo.saldo)
const valorSacado = ContaCorrenteRicardo.sacar(50)
ContaCorrenteRicardo.sacar(200)
console.log(ContaCorrenteRicardo.saldo)
ContaCorrenteRicardo.depositar(500)
ContaCorrenteRicardo.transferir(200, conta2)
console.log(conta2.saldo)
console.log(ContaCorrenteRicardo.saldo)
console.log(ContaCorrenteRicardo)
console.log(cliente1)
console.log(cliente2)
export class ContaCorrente{
agencia
cliente
//Private Field - # na frente torna o atributo inacessível
// https://github.com/tc39/proposal-class-fields#private-fields
saldo
//MÉTODO(FUNCTION) SACAR
sacar(valor){
if(this.saldo >= valor){
this.saldo -= valor;
return valor;
}
}
depositar(valor){
//EARLY RETURN
if(valor <= 0) return;
this.saldo += valor;
}
// COMPOSIÇÃO DE CLASSE
transferir(valor, conta){
const valorSacado = this.sacar(valor)
conta.depositar(valorSacado)
}
}
export class Cliente{
nome
cpf
rg
}
a saída do saldo vem como NaN