Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

cliente aparece como undefined

index.js



import  {Cliente} from "./cliente.js"
import {ContaCorrente} from "./ContaCorrente.js"

const cliente1 = new Cliente( "Jane", 12540490258);
const cliente2 = new Cliente( "Aline", 17836925475);


const contaCorrenteJane = new ContaCorrente( 1001, cliente1);
contaCorrenteJane.depositar(500);
contaCorrenteJane.sacar(100);

const conta2 = new ContaCorrente(102,cliente2);

let valor = 200;
contaCorrenteJane.transferir(valor, conta2);


console.log(contaCorrenteJane);

cliente.js

 export class Cliente {
  nome;
  _cpf;



  get cpf(){
    return this._cpf;
  }
  constructor(nome, cpf){
    this.nome = nome;
    this._cpf = cpf;

  }
}

ContaCorrente.js

import {Cliente} from "./Cliente.js";

export class ContaCorrente {

  static numeroDeContas = 0;
  agencia;
  _cliente;
  _saldo = 0;

  set cliente(novoValor){
    if(novoValor instanceof Cliente){
      this._cliente = novoValor;
    }
  }

  get cliente(){
    return this._cliente;
  }

  get saldo(){
    return this._saldo;
  }

  constructor (agencia, cliente){
    this.agencia = agencia;
    this.cliente = cliente;
    ContaCorrente.numeroDeContas += 1;
  }

  sacar(valor){
    if(this._saldo >= valor){
      this._saldo -= valor;
      return valor;
    }

  }

  depositar(valor) {
    if(valor <= 0){
      return;
    }
      this._saldo += valor;
    }

  transferir(valor, conta) {
  const valorSacado = this.sacar(valor);
  conta.depositar(valorSacado);
  }
}
7 respostas

@Jane, você poderia postar o erro que está aparecendo para você? e poderia dar mais detalhes, você falando o cliente aparece como undefined, é algo muito vago para te ajudar, é bom sempre que postar duvida ou erro, tentar detalhar o maximo de informações possiveis e prints do erro se possível.

Até mais.

@Hugo, claro. O erro que aparece é o seguinte:

Quando eu executo o comando node ./index.js, ele só retorna a agência e o saldo, as informações como o nome e cpf da conta não aparece.

PS C:\Users\Diego\Desktop\JavaScript> node ./index.js ContaCorrente { agencia: 102, _cliente: undefined, _saldo: 200 }

solução!

Olá, Jane! Tudo certo?

Ao importar o módulo cliente ao index, você digitou o "c" em minúsculo. Na primeira linha do index "import {Cliente} from "./cliente.js", basta arrumar para "import {Cliente} from "./Cliente.js". Creio que seja isso

Opa tudo bem @jane?

O que acontece, o cliente que vc traz dentro do contaCorrente é um objeto.

você deve estar perdendo referencia dele, tenta colocar um console log nesse trecho ...

const contaCorrenteJane = new ContaCorrente( 1001, cliente1);

-> conosole.log(contaCorrenteJane). // e tenta ver o que ele mostra no console

contaCorrenteJane.depositar(500); contaCorrenteJane.sacar(100);

Obrigada pessoal, funcionou aqui.

Opa, que legal, Conte para nós o que tava acontecendo e como você arrumou! Por favor! rs! Parabéns!

Olá, o que funcionou aqui, não sei se foi o correto, mas acrescentei no construtor conta corrente o _ , depois do ponto.

constructor (agencia, cliente){``
 this._agencia = agencia;
 this._cliente = cliente;
ContaCorrente.numeroDeContas += 1;
  }