Tengo el siguiente código.
El método vratiUtakmicu() está devolviendo un objeto como este:
{ nameOfFirstTeam: some string, goalsFirstTeam: random number, goalsSecoundTeam: random number, nameOfSecoundTeam: some string } Pero cuando llamo al método utakmicaToString() no toma el valor de GoalsFirstTeam, GoalsSecoundTeam
En cambio, parece que está creando una nueva puntuación aleatoria y luego imprimiéndola en la consola.
Copia mi código y ejecuta para que veas la diferencia.
¿Alguien puede explicarme por qué sucede esto?
¿Cómo puedo arreglar esto para que el método utakmicaToString() tome valores vratiUtakmicu() y no vuelva a crear un resultado aleatorio?
const arrEkipe = ["Srbija" , "Italija" , "Makedonija", "Bugarsk"]; class Utakmica{ constructor(ekipa1,ekipa2){ this.ekipa1 = ekipa1; this.ekipa2 = ekipa2; } rezultat = () =>{ return Math.ceil(Math.random() * 6 ); } vratiUtakmicu = () => { return {domacin: this.ekipa1 , domaciGolovi: this.rezultat() , gostGolovi: this.rezultat(), gost: this.ekipa2} } utakmicaToString = () => { return this.vratiUtakmicu().domacin + " " + this.vratiUtakmicu().domaciGolovi + " : " + this.vratiUtakmicu().gostGolovi + " " + this.vratiUtakmicu().gost + " " ; } } var Kolo1 = {}; for(let i = 0; i < arrEkipe.length;i+=2){ Kolo1["Utakmica" + i] = new Utakmica(arrEkipe[i],arrEkipe[i+1]); } console.log("The result form this console has to be the same") console.log(Kolo1.Utakmica0.vratiUtakmicu()) console.log("like result from this console but it looks like utakmicaToString() sets new random result") console.log(Kolo1.Utakmica0.utakmicaToString())