我有一个带有4个属性的类,其中2个是可选的,我对参数的顺序有疑问,好像其中之一的缺失值将替换为错误的属性。看代码:

class Book{
   constructor(name, author, bookURL, publishDate){
   this.name = name;
   this.author = author;
   this.bookURL = bookURL;
   this.publishDate = publishDate;

   }
}


这里的名称和作者是必填项,而bookURL和publishDate是可选的。因此,例如,如果我们调用一个没有URL但带有发布日期的类,则将为bookURL分配日期。

new Book(
  "The Unhoneymooners",
  "Christina Lauren",
  "2019"
)


这将输出:

Book {
 name: 'The Unhoneymooners',
 author:
  'Christina Lauren',
 bookURL:
  '2019' }


在这里,它希望将bookURL设置为undefined,并将publishDate设置为2019年。我希望您在这里理解了这个问题。谢谢你的建议

最佳答案

让构造函数接受一个单独的参数,即一个解构的对象:

constructor({name, author, bookURL, publishDate}) {


这样你就可以通过

new Book({
  name: "The Unhoneymooners",
  author: "Christina Lauren",
  publishDate: "2019"
})

09-26 14:58