首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是什么语法:{variable1,variable2,variable3}?

这是什么语法:{variable1,variable2,variable3}?
EN

Stack Overflow用户
提问于 2017-03-15 08:14:49
回答 3查看 429关注 0票数 2

我看到了以下ES6代码,并感到困惑:

代码语言:javascript
复制
class GuitarAmp {
  constructor ({ cabinet = 'spruce', distortion = '1', volume = '0' } = {}) {
    Object.assign(this, {
      cabinet, distortion, volume
    });
  }
}

Object.assign的第二个参数是什么?它不是一个物体,那它是什么?我刚刚注意到它也是构造函数参数的一部分,这部分:

代码语言:javascript
复制
{ cabinet = 'spruce', distortion = '1', volume = '0' } = {}

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-15 08:19:28

因此,在上述守则中,我相信:

代码语言:javascript
复制
{
  cabinet, distortion, volume
}

在ES5中:

代码语言:javascript
复制
{
   cabinet: cabinet,
   distortion: distortion,
   volume: volume,
}

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

票数 3
EN

Stack Overflow用户

发布于 2017-03-15 08:23:11

第一个param的默认值是{},但如果提供它,则在第一个param对象(如cabinet = 'spruce', distortion = '1', volume = '0' )中有嵌套的默认值。

因此,如果提供了第一个对象param,例如{ cabinet = 'test', distortion = '4', volume = '2' },那么this将如下所示

代码语言:javascript
复制
{ 
  cabinet: 'test', 
  distortion: '4', 
  volume: '2' 
}

否则,它将在param中提供默认值。

票数 1
EN

Stack Overflow用户

发布于 2017-03-15 08:24:22

它是一个使用速记语法的对象文字。只是句法上的糖。

代码语言:javascript
复制
var a = "A";
var b = "B";
var c = "C";

这两者是相同的:

代码语言:javascript
复制
{ a: a, b: b, c: c }
{ a, b, c }

换句话说,如果您向对象文本中抛出一个变量,则属性名将成为变量名的名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42804267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档