您可以在JavaScript类中为属性设置多个值吗?

时间:2018-05-16 18:25:38

标签: javascript arrays class properties javascript-objects

这一点是在用户注册新书时附加多个标签(例如:科幻,外星人,宇宙飞船),并从已有的标签集中选择。还有更多内容,但出于简化的目的,这就是我所要求的。 例如,属性标签可以有多个值,比如数组,所以我可以在?

之后访问它们

就像你在这里提出问题时提出的标签一样。

class Book{
   constructor(title, cover, autor, tags){
      this.title = title;
      this.cover = cover;
      this.autor = autor;
      this.tags = tags;
}

3 个答案:

答案 0 :(得分:1)

是的,对象属性可以是数组。你的代码很好。

答案 1 :(得分:0)

当然,您可以在类中拥有数组和属性。

答案 2 :(得分:0)

所以你有你的构造函数:

class Book{
  constructor(title, cover, author, tags){
    this.title = title;
    this.cover = cover;
    this.author = author;
    this.tags = tags;
}

现在您需要做的就是实例化它并访问它:

// presuming you have the params to pass in from somewhere
var someBook = new Book(title, cover, author, tags);

//to access, use either syntax styles:
var someBooksTags = someBook['tags']  // name of prop accessing as string
var someBooksTitle = somebook.title;

您将获得放入构造函数的type,因此如果您将一个字符串/对象数组作为标记传递,那么当您访问它时,这就是您将获得的内容。

如果您有任何疑问,请随便问老兄。

编辑:这是一个传入标签数组的例子:

var nb_name = 'Awesome Book',
    nb_cover = '../../images/awesomebookcover.png',
    nb_author = {
        name: 'jimbo slim',
        booksPublished: 17
    },
    nb_tags = ['awesome','seasoned author','hardback'];

var book = new Book(nb_name, nb_cover, nb_author, nb_tags);

console.log(book.tags); 
// output: ['awesome','seasoned author','hardback']