如果我创建一个具有默认值的类 -
class SomeClass {
constructor({
a = 0.00,
b = 0.00,
c = 14.00,
d = 'xyz'
}){
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
}
我必须在创建实例时传递一个空对象。
var sc = new SomeClass({});
如果我想在对象参数中设置默认值,或者我可以在构造函数中更改某些内容以便我可以执行此操作var sc = new SomeClass();
来创建我的对象,这是正常的吗?
答案 0 :(得分:4)
设置默认值:
class SomeClass {
constructor({
a = 0.00,
b = 0.00,
c = 14.00,
d = 'xyz'
} = {}) { // <=
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
}
答案 1 :(得分:2)
此语法适用于我的Chrome:
class Test {
constructor({a = 5} = {a: 6}) {
console.log(a);
}
}
new Test(); // 6
答案 2 :(得分:1)
class SomeClass {
constructor(optionsArg) {
if (optionsArg === undefined) {
optionsArg = {};
}
this.a = 'a' in optionsArg ? optionsArg.a : 0.00;
this.b = 'b' in optionsArg ? optionsArg.b : 0.00;
this.c = 'c' in optionsArg ? optionsArg.c : 14.00;
this.d = 'd' in optionsArg ? optionsArg.d : 'xyz';
}
}
var sc = new SomeClass({});
Object.keys(sc).forEach(function(prop){
console.log(prop, sc[prop]);
});
&#13;