Javascript 类构造函数/函数语法,参数列表周围带有花括号

Javascript 类构造函数/函数语法,参数列表周围带有花括号,javascript,class,constructor,arguments,ecmascript-6,Javascript,Class,Constructor,Arguments,Ecmascript 6,我最近看到了以下代码: 福班{ 建造师{ A. B c=[] } { 这个a=a; 这个.b=b; 这个.c=c; console.logthis; } } const foo=新foo{ 答:1,, b:2 }; 但我以前从未见过这样定义的论点 这是解构,只是用于参数 我找不到好的参考资料,但我相信这是ES6的一项功能。它所做的是将对象参数分解为单个变量,并将同名属性的值分配给变量 这类似于: class Foo { constructor(obj) { this.a = obj

我最近看到了以下代码:

福班{ 建造师{ A. B c=[] } { 这个a=a; 这个.b=b; 这个.c=c; console.logthis; } } const foo=新foo{ 答:1,, b:2 }; 但我以前从未见过这样定义的论点

这是解构,只是用于参数

我找不到好的参考资料,但我相信这是ES6的一项功能。它所做的是将对象参数分解为单个变量,并将同名属性的值分配给变量

这类似于:

class Foo {
  constructor(obj) {
    this.a = obj.a;
    this.b = obj.b;
    this.c = obj.c || [];
    console.log(this);
  }
}
是的

但是,在这种情况下,您可以简单地执行以下操作

class Foo {
  constructor(opts) {
    Object.assign(this, {c: []}, opts);
    console.log(this);
  }
}

const foo = new Foo({
  a: 1,
  b: 2
});

您应该为您的linter找到某种es6标志以使其满意。

@Downvoter,这个问题可以通过什么方式改进?是的,如果我知道需要改进的地方,我会改进它。这是参数分解。不是Downvoter,但问题可以通过不被询问而得到改进。我知道用谷歌搜索这类东西有点困难,但函数参数列表中的堆栈溢出花括号对我很有用。此外,如果你认为自己是一个半专业的JS开发人员,我真的推荐通过一个新的ES6特征列表,其中有几个,例如,我尝试了几个搜索,只是找不到它。通过一个例子问我在看什么似乎是合理的。谢谢也许我应该删除这个问题?事实上,这是ES6的一个特性。我想这里描述的是:谢谢。我很难找到我正在看的东西。谢谢。我猜它是相似的,但不知道它叫什么。我想我需要更新我的过梁,因为我已经设置了标志。Object.assign就是这个方法。如果将c放在同一调用对象中的对象中,则会短一点。assignthis,{c:[]},opts;,虽然可能会以额外分配为代价。我想知道这是否会对优化产生任何影响。当一些引擎能够静态地确定对象将具有的所有属性时,它们可以进行优化。有可能他们可以从电话里找到答案。