【问题标题】:Can you had multiple values to a property in JavaScript Class?JavaScript 类中的属性可以有多个值吗?
【发布时间】:2018-05-16 18:25:38
【问题描述】:

这样做的目的是在用户注册一本新书时附加多个标签(例如:科幻、外星人、宇宙飞船),并从现有的一组标签中进行选择。还有更多,但为了简化起见,这就是我所要求的。 比如属性标签可以有多个值吗,比如是一个数组,以后可以访问吗?

就像您在这里提出问题时所添加的标签一样。

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

【问题讨论】:

  • 是的 100% - 对象很重要 :) javascript 非常适合玩耍,因为它的类型非常松散。每次实例化 new Book() 时,您都可以传入任何您喜欢的数据类型。
  • 查看我关于如何使用构造函数并访问创建的对象的答案。希望有帮助
  • 是的,一个属性可以有一个数组作为值,如果那是你所要求的。
  • 好吧,这就是我教的我应该自己测试它,但我想要一个很好的解释。谢谢大家。

标签: javascript arrays class properties javascript-objects


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    当然,您可以在类中包含数组和属性。

    【讨论】:

    • "and" 在这里没有意义
    【解决方案3】:

    所以你有你的构造函数:

    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']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 1970-01-01
      相关资源
      最近更新 更多