Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么要在javascript类中设置这样的默认参数?_Javascript_Ecmascript 6 - Fatal编程技术网

为什么要在javascript类中设置这样的默认参数?

为什么要在javascript类中设置这样的默认参数?,javascript,ecmascript-6,Javascript,Ecmascript 6,在阅读一篇关于javascript类的文章时,作者使用了以下语法: class GuitarAmp { constructor ({ cabinet = 'spruce', distortion = '1', volume = '0' } = {}) { Object.assign(this, { cabinet, distortion, volume }); } } 构造函数参数列表中={}位的用途是什么?我们不是在为文件柜、失真和卷设置默认参数

在阅读一篇关于javascript类的文章时,作者使用了以下语法:

class GuitarAmp {
    constructor ({ cabinet = 'spruce', distortion = '1', volume = '0' } = {}) {
     Object.assign(this, {
      cabinet, distortion, volume
     });
   }
}

构造函数参数列表中
={}
位的用途是什么?我们不是在为
文件柜
失真
设置默认参数吗?

它允许您调用
GuitarAmp
,而无需任何参数,并将提供一个默认参数
{}
,其解构属性随后将正确分配默认值。否则,如果在没有任何参数的情况下调用函数,将导致错误:

class-GuitarAmp1{
构造函数({cabinet='spruce',distortion='1',volume='0'}={}){
控制台、日志(机柜);
}
}
类GuitarAmp2{
构造函数({cabinet='spruce',Transformation='1',volume='0'}){
控制台、日志(机柜);
}
}
新参数p1();

新吉他参数p2()如果您不提供任何参数,即object,则设置默认值。您应该使用google或MDN,之前不应该在此处询问searching@xianshenglu我可以问一下,对于这样的问题,你有什么建议吗?”={}在构造函数中是什么意思?'不会得到很多有效的结果。我相信这是说,如果传递了一个对象,如果这些单独的属性没有在对象中声明,那么这些是默认值(对于cabinet、distortion、volume),如果没有向函数提供参数,那么默认值是空对象{}。