请看下面的例子:ES6传递一个对象来构造函数,并设置属性
class Parent {
constructor({ parentOnlyArg = 'default value' } = {}) {
this.parentOnlyArg = parentOnlyArg;
}
}
class Child extends Parent {
// this class and also any class inheriting from it
constructor({ visibleStyle = 'inline' } = {}) {
// I want to pass argument to super as an object
super(/** args **/);
this.visibleStyle = visibleStyle;
}
}
class Child2 extends Parent {
// Specifying parentOnlyArg as default will change the behaviour
constructor({ parentOnlyArg = 'another parent value',
someOther = 'value' } = {}) {
// I want to pass argument to super as an object
super(/** args **/);
this.someOther = someOther;
}
}
是否有可能通过在构造函数的参数,以超?
好像是比我想象的
super(...arguments);
简单的话,我可以用
var c1 = new Child(); // c.parentOnlyArg = 'default value'
var c2 = new Child2(); // c.parentOnlyArg = 'another parent value'
var c3 = new Child({ parentOnlyArg: 'changed again' }); // c.parentOnlyArg = 'changed again'
为什么不使用'<>'片段编辑器[MCVE]讯息? – mplungjan
'super({parentOnlyArg})'? – Bergi
任何不将解构结构移入函数体的原因?然后你会得到一个参数来通过变量。 – loganfsmyth