4
respostas

instanceof

A parte do set onde usa o instanceof não funciona e imprime o 0 (ou qualquer outra instância) da mesma forma

Escrevi assim: (dentro da class ContaCorrente)

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

No arquivo principal:

const conta1 = new ContaCorrente
conta2.cliente = 0
conta2.agencia = 1

console.log(conta1)

Me retorna isso no terminal:

ContaCorrente { cliente: 0, agencia: 1, saldo: 0 }

no caso a intenção era que desse undefined

4 respostas

Compartilha seu codigo completo

código completo:

Arquivo principal:

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

const cliente1 = new Cliente()
cliente1.nome = 'Helena'
cliente1.cpf = 12345678910

const cliente2 = new Cliente()
cliente2.nome = 'Pedro'
cliente2.cpf = 12345678911

const conta1 = new ContaCorrente
conta1.cliente = 0
conta1.agencia = 1

const conta2 = new ContaCorrente
conta2.cliente = 0
conta2.agencia = 1

console.log(conta1)
console.log(conta2)
console.log(conta2.cliente)

Arquivo da class Cliente:

export class Cliente {
    nome
    cpf
}

Arquivo da class ContaCorrente

export class ContaCorrente {
    cliente
    agencia
    saldo = 0

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

    get cliente(){
        return this.cliente
    }

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

    sacar(valor){
        if(this.saldo >= valor) { this.saldo -= valor }
        else{ console.log( 'Você não tem saldo suficiente' ) }
        return valor
    }

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

Opa, boa noite!

Esta faltando dar import no Client.js dentro do arquivo ContaCorrente.JS, segue como vai ficar:

export class Cliente {
    nome
    cpf
}
import { Cliente } from "./cliente.js";

export class ContaCorrente {
    cliente
    agencia
    saldo = 0

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

    get cliente(){
        return this.cliente
    }

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

    sacar(valor){
        if(this.saldo >= valor) { this.saldo -= valor }
        else{ console.log( 'Você não tem saldo suficiente' ) }
        return valor
    }

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

Aaaa, não sabia que tinha que por nele também... Na minha cabeça como os dois estavam lincados no index ele ja lia