Buenas noches, intentando inicializar el atributo cliente dentro del constructor de Cuenta corriente con el metodo set cliente, como lo hace en un primer momento el tutor en el video, me salta el error que cliente no es una funcion
CuentaCorriente.js
import {Cliente} from './Cliente.js'
export class CuentaCorriente{
#cliente;
#saldo;
numero;
agencia;
set cliente(valor){
if (valor instanceof Cliente){
this.#cliente = valor;
}
}
get cliente(){
return this.#cliente;
}
constructor(cliente, numero, agencia){
this.cliente(cliente);
this.#saldo = 0;
this.numero = numero;
this.agencia = agencia;
}
index.js
import {CuentaCorriente} from './CuentaCorriente.js';
import {Cliente} from './Cliente.js';
const clienteItter = new Cliente("Itter", "30554664", "20305546644");
const cuentaItter = new CuentaCorriente(clienteItter, "1540", "2");
console.log(cuentaItter);
console.log(clienteItter);
Cliente.js
export class Cliente{
nombreCliente;
dniCliente;
cuil;
constructor(nombreCliente, dniCliente, cuil){
this.nombreCliente = nombreCliente;
this.dniCliente = dniCliente;
this.cuil = cuil;
}
}
Windows PowerShell
PS D:\CursosAlura\JavaScript\banco_popular> node .\index.js
file:///D:/CursosAlura/JavaScript/banco_popular/CuentaCorriente.js:20
this.cliente(cliente);
^
TypeError: this.cliente is not a function
at new CuentaCorriente (file:///D:/CursosAlura/JavaScript/banco_popular/CuentaCorriente.js:20:14)
at file:///D:/CursosAlura/JavaScript/banco_popular/index.js:6:21
←[90m at ModuleJob.run (node:internal/modules/esm/module_job:197:25)←[39m
at async Promise.all (index 0)
←[90m at async ESMLoader.import (node:internal/modules/esm/loader:337:24)←[39m
←[90m at async loadESM (node:internal/process/esm_loader:88:5)←[39m
←[90m at async handleMainPromise (node:internal/modules/run_main:61:12)←[39m
P
Pero luego cambiando la linea
constructor(cliente, numero, agencia){
** this.cliente = cliente;**
this.#saldo = 0;
this.numero = numero;
this.agencia = agencia;
}
El error desaparece. O sea que no se puede inicializar con el metodo set como en un primer momento explico en el video