如何通过提示保存数组的数据并与javascript中的类绑定

问题描述

通过提示保存在数组中的数据就像我做的那样链接一个类,用一个方法显示(console.log(信息())

class Libro {

   constructor(titulo,autor,año,genero) {

      this.titulo = titulo
      this.Autor = autor
      this.Año = año
      this.Genero = genero
   }

   informacion() {
      return console.log(`El libro ${this.titulo} del autor ${this.Autor} fue publicado en el año ${this.Año} y es de genero ${this.Genero}`);
   }
}

let titulo1 = prompt('Introduce el titulo del libro')
let autor1 = prompt('Introduce el autor del libro')
let año1 = prompt('Introduce el año en que fue publicado el libro')
let genero1 = prompt('Introduce el genero literario del libro')

let libro1 = [titulo1,autor1,año1,genero1];

libro1.push(new Libro(titulo,genero))

console.log(libro1.informacion());

解决方法

类标识符指的是类构造函数。

替换

let libro1 = [titulo1,autor1,año1,genero1];

libro1.push(new Libro(titulo,autor,año,genero))

console.log(libro1.Libro());

let libro1 = new Libro(titulo,genero)
libro1.informacion()   // call the informacion method of libro1

它创建一个类实例对象,将其分配给libro1,然后调用informacion的{​​{1}}方法。

如果你想要一个 book 对象数组,你可以将 libro1(和其他书籍)保存在一个数组中:

libro1

要创建多本书,请尝试将提示放入返回 const libri = []; ... // create libro1 libri.push(libro1); ... // create libro2 libri.push( libro2); 类对象的函数中。这样所有的书都使用相同的提示集。


作为对评论的回应,Libro 方法已经调用了 informacion,如果 console.log 返回的是 undefined,则返回 console.log。返回信息字符串可能更适合您的目的:

informacion() {
      return `El libro ${this.titulo} del autor ${this.Autor} fue publicado en el año ${this.Año} y es de genero ${this.Genero}`;
   }

如果提示的结果保存在一个数组中,如

let arr = [titulo,Autor,Año,Genaro];

您可以使用 rest parameter syntax 将它们传递给构造函数:

let libro = new Libro( ...arr );