当前位置:  开发笔记 > 编程语言 > 正文

避免重构论证中的重复

如何解决《避免重构论证中的重复》经验,为你挑选了1个好方法。

我有一个函数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);

肯定应该有一些更好的语法.



1> Oriol..:

我想你想要的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) + '
');
推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有