在查看有关javascript类的文章时,作者使用以下语法:
class GuitarAmp {
constructor ({ cabinet = 'spruce', distortion = '1', volume = '0' } = {}) {
Object.assign(this, {
cabinet, distortion, volume
});
}
}
构造函数参数列表中= {}
位的用途是什么?我们不是要为cabinet
,distortion
和volume
设置默认参数吗?
答案 0 :(得分:4)
它允许您在没有任何参数的情况下调用GuitarAmp
,并将提供默认参数{}
- 其析构属性将正确地进行默认分配。否则,如果在没有任何参数的情况下调用该函数,则会导致错误:
class GuitarAmp1 {
constructor ({ cabinet = 'spruce', distortion = '1', volume = '0' } = {}) {
console.log(cabinet);
}
}
class GuitarAmp2 {
constructor ({ cabinet = 'spruce', distortion = '1', volume = '0' }) {
console.log(cabinet);
}
}
new GuitarAmp1();
new GuitarAmp2();
这个default-parameter-deconstruction模式可以用于任何函数,无论它是否是构造函数。