1
resposta

Dúvida exercício 5

No enunciado da questão fala para usar o "this" para acessar as propriedades do objeto, porém o "this" não é usado na resposta: Insira aqui a descrição dessa imagem para ajudar na acessibilidade Código:

const contaBancaria = {
    titular: "João",
    saldo: 1000,
    depositar: function(valor) {
        this.saldo += valor;
    },
    sacar: function(valor) {
        if (valor <= this.saldo) {
            this.saldo -= valor;
        } else {
            console.log("Saldo insuficiente para saque.");
        }
    }
};

const cliente = {
    nome: "Carlos",
    conta: contaBancaria
};

function mostrarSaldo(cliente) {
    console.log(`Nome do cliente: ${cliente.nome}`);
    console.log(`Saldo da conta: ${cliente.conta.saldo}`);
}

// Realize operações de depósito e saque na conta bancária do cliente
cliente.conta.depositar(500);
cliente.conta.sacar(200);

// Chame a função mostrarSaldo para exibir as informações atualizadas
mostrarSaldo(cliente)
1 resposta

Olá Luidi! Tudo joia?

No código que você compartilhou, o this está sendo corretamente utilizado nos métodos depositar e sacar do objeto contaBancaria. No entanto, na função mostrarSaldo, o this não é necessário porque você está passando o objeto cliente como argumento.

O this é usado dentro de métodos de um objeto para referenciar as propriedades desse mesmo objeto. Na função mostrarSaldo, você está acessando diretamente as propriedades do objeto cliente passado como parâmetro, então não precisa usar this ali.

Se você quisesse usar this na função mostrarSaldo, poderia defini-la como um método do objeto cliente, assim:

const cliente = {
    nome: "Carlos",
    conta: contaBancaria,
    mostrarSaldo: function() {
        console.log(`Nome do cliente: ${this.nome}`);
        console.log(`Saldo da conta: ${this.conta.saldo}`);
    }
};

// Agora você pode chamar o método diretamente
cliente.mostrarSaldo();

Dessa forma, this referenciaria o objeto cliente dentro do método mostrarSaldo.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.