Dow*_*oat 1 javascript destructuring ecmascript-6
我有一个函数ValidateInteger,它返回一个看起来像这样的对象:
{
Value: "123",
Neg: false,
Exp: 3
}
Run Code Online (Sandbox Code Playgroud)
我也有一个调用这个函数的类:
class MyClass {
constructor(val) {
{
Value: this.Value
Neg: this.Neg
Exp: this.Exp
} = ValidateInteger(val);
}
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样,有相当多的重复this.
我的问题是有一些更好的语法来做到这一点,如:
this.{Value, Neg, Exp} = ValidateInteger(val);
Run Code Online (Sandbox Code Playgroud)
肯定应该有一些更好的语法.
我想你想要的Object.assign.它可用于将可枚举属性的值从某些对象复制到另一个对象.
Object.assign(this, ValidateInteger(val));
Run Code Online (Sandbox Code Playgroud)
var ValidateInteger = val => ({
Value: "123",
Neg: false,
Exp: 3
});
class MyClass {
constructor(val) {
Object.assign(this, ValidateInteger(val));
}
}
document.write('<pre>' + JSON.stringify(
new MyClass() // MyClass { Value: "123", Neg: false, Exp: 3 }
, null, 2) + '</pre>');Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |