我有一个函数ValidateInteger
,它返回一个看起来像这样的对象:
{ Value: "123", Neg: false, Exp: 3 }
我也有一个调用这个函数的类:
class MyClass { constructor(val) { { Value: this.Value Neg: this.Neg Exp: this.Exp } = ValidateInteger(val); } }
正如你所看到的那样,有相当多的重复this
.
我的问题是有一些更好的语法来做到这一点,如:
this.{Value, Neg, Exp} = ValidateInteger(val);
肯定应该有一些更好的语法.
我想你想要的Object.assign
.它可用于将可枚举属性的值从某些对象复制到另一个对象.
Object.assign(this, ValidateInteger(val));
var ValidateInteger = val => ({
Value: "123",
Neg: false,
Exp: 3
});
class MyClass {
constructor(val) {
Object.assign(this, ValidateInteger(val));
}
}
document.write('' + JSON.stringify(
new MyClass() // MyClass { Value: "123", Neg: false, Exp: 3 }
, null, 2) + '
');