This question already has answers here:
Javascript object literal: what exactly is {a, b, c}?

(3个答案)


3年前关闭。




我看到了以下ES6代码,感到困惑:
class GuitarAmp {
  constructor ({ cabinet = 'spruce', distortion = '1', volume = '0' } = {}) {
    Object.assign(this, {
      cabinet, distortion, volume
    });
  }
}

Object.assign的第二个参数是什么?这不是一个对象,那是什么?我只是注意到它也是构造函数参数的一部分,这部分是:
{ cabinet = 'spruce', distortion = '1', volume = '0' } = {}

我不熟悉这种新语法,所以我不知道如何查找它,因为我不知道它叫什么。有人知道这个词吗?

最佳答案

因此,在上面的代码中,我相信:

{
  cabinet, distortion, volume
}

在ES5中:
{
   cabinet: cabinet,
   distortion: distortion,
   volume: volume,
}

键和值相同时,这只是编写对象的一种简短形式。

10-04 17:20