У вас может быть несколько значений для свойства в классе JavaScript? - PullRequest
0 голосов
/ 16 мая 2018

Смысл этого в том, чтобы прикрепить несколько тегов (например, научно-фантастические, инопланетяне, космические корабли), когда пользователь регистрирует новую книгу и выбирает из уже существующего набора тегов.Это еще не все, но для упрощения это все, что я прошу.Например, могут ли теги свойств иметь несколько значений, например, быть массивом, чтобы я мог получить к ним доступ после?

Как и теги, которые вы задаете для вопроса, когда задаете его здесь.

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

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Конечно, вы можете иметь массивы и свойства в классах.

0 голосов
/ 16 мая 2018

Итак, у вас есть ваш конструктор:

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']
0 голосов
/ 16 мая 2018

Да, свойство объекта может быть массивом. Ваш код в порядке.

...