如何用接口模式构建JavaScript中的对象

36 阅读1分钟

有很多方法来创建新的JavaScript对象。在这篇文章中,我们将使用流畅的接口模式!在流畅的接口模式中,我们使用带有定义方法的类来为我们的对象添加属性。

在下面的例子中,我们创建了一个PersonBuilder 类。在constructor ,我们创建一个空的person 属性。然后,我们有一些额外的方法,叫做withNamewithAge ,这些方法允许我们分别给我们的人一个名字和年龄。

最后,我们有一个build 方法。这只是返回我们的person 对象,表示我们已经完成了构建。

class PersonBuilder {
  constructor() {
    this.person = {};
  }
  withName(name) {
    this.person.name = name;
    return this;
  }
  withAge(age) {
    this.person.age = age;
    return this;
  }
  build() {
    return this.person;
  }
}

请注意,我们在withNamewithAge 方法中返回this --这将返回当前实例,允许我们继续使用连锁方法。

我们的类的实现最终是这样的。

const person = new PersonBuilder().withName('Daffodil').withAge(25).build();
console.log(person);
// { name: "Daffodil", age: 25 }

就这样,我们现在有了一个人的对象

为什么要用这种方式构建对象?

流畅的接口模式肯定会很冗长,但它有一个好处,就是很难在你的对象上设置一个错误的属性--你只能通过你的类的方法来设置对象的道具。如果你的对象有很多属性,或者你需要一个方便的方法来生成一堆不同的对象(例如,用于生成测试用例),这就特别方便了。