Estaba tratando de declarar una función en mi objeto, pero dentro de mi código dice bucle infinito dentro de mi código. Traté de declararlo como una función normal, pero mi IDE solo quiere que se declare como está a continuación, pero dice bucle infinito cuando lo compilo.
let movie = { title: "Forrest Gump", director: "Robert Zemeckis", composer: "Alan Silvestri", budget: 55000000, boxOffice: 677900000, awards: [], totalRevenue: function () { let x = this.movie.boxOffice - this.movie.budget; return x; }, };Eliminar movie en su función:
totalRevenue: function() { let x = this.boxOffice - this.budget; return x; }, Su código es un error porque está tratando de encontrar un objeto llamado "película" en this objeto que no tiene. Su función funcionará si hace que su objeto sea así:
let movie = { title: "Forrest Gump", director: "Robert Zemeckis", composer: "Alan Silvestri", budget: 55000000, boxOffice: 677900000, awards: [], movie: { boxOffice: 677900000, budget: 55000000 }, totalRevenue: function () { let x = this.movie.boxOffice - this.movie.budget; return x; }, };En su código, this pertenece al objeto de la película, por lo tanto, elimine la película de su función, puede invocar directamente la boxoffice y budget porque pertenece a this
let movie = { title: "Forrest Gump", director: "Robert Zemeckis", composer: "Alan Silvestri", budget: 55000000, boxOffice: 677900000, awards: [], totalRevenue: function () { let x = this.boxOffice - this.budget; return x; }, }; movie.totalRevenue(); // will return 622900000 Y una cosa más, su código no entra en un bucle infinito en lugar de que no pueda encontrar una movie dentro de this