在 JavaScript 中使用 ... 修改对象

Daw*_*n17 0 javascript

我有一个名为的对象added,如下所示:

{
  title: "test1",
  startDate: "Mon Apr 15 2019 10:30:00 GMT-0500 (Central Daylight Time)",
  endDate: "Mon Apr 15 2019 11:00:00 GMT-0500 (Central Daylight Time)",
  allDay: false
}
Run Code Online (Sandbox Code Playgroud)

我试图通过执行以下操作来编辑此对象的startDateendDate字段:

added = {
  ...added,
  {added.startDate: "111", added.endDate: "222"}       
}
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误,说

意外令牌,预期,

这样做的正确方法是什么?

Cer*_*nce 5

当重新分配added为新的对象字面量时,{}s 中的所有内容都需要是键值对,或者需要将...具有键值对的对象传播到新对象中。您不能将普通对象放入对象字面量中(除非您将其展开),因为对象是一个值,而不是键值对。

改成:

added = {
  ...added,
  startDate: "111",
  endDate: "222"
}
Run Code Online (Sandbox Code Playgroud)

你也可以这样做

added = {
  ...added,
  ...{
    startDate: "111",
    endDate: "222"
  }
}
Run Code Online (Sandbox Code Playgroud)

这将是有效的语法(但愚蠢的这样做 - 更容易在外部对象文字中列出新属性)。