使用流畅接口模式创建 JavaScript 对象
为什么要以这种方式构建对象?
创建新的 JavaScript 对象有很多方法。在本文中,我们将使用流畅接口模式!在流畅接口模式中,我们使用已定义方法的类来向对象添加属性。
在下面的示例中,我们创建一个PersonBuilder
类。在 中constructor
,我们创建一个空person
属性。然后,我们添加一些名为withName
和 的附加方法,withAge
分别用于为 Person 指定姓名和年龄。
最后,我们有一个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;
}
}
请注意,我们在和方法this
中返回- 这将返回当前实例,允许我们继续链接方法。withName
withAge
我们的类的实现最终是这样的:
const person = new PersonBuilder()
.withName("Daffodil")
.withAge(25)
.build();
console.log(person);
// { name: "Daffodil", age: 25 }
就是这样,我们现在有一个人物对象!
为什么要以这种方式构建对象?
流畅接口模式确实可能比较冗长,但它的一个优点是,它使得在对象上设置错误的属性变得非常困难——你只能使用类的方法设置对象的 props。如果你的对象有很多属性,或者你需要一种便捷的方式来按照规范生成一堆不同的对象(例如,用于生成测试用例),那么这会特别方便。
鏂囩珷鏉ユ簮锛�https://dev.to/nas5w/using-the- Fluent-interface-pattern-to-create-javascript-objects-2p1n