We’re using the builder pattern on our javascript project, as it useful for starting off with a set of defaults, but is clear when we want to override particular values. Although there are a few places on the net that describe who uses the builder pattern in javascript, they don’t really provide an implementation.
Here’s one that works for us:
var Builder = function() {
var a = "defaultA";
var b = "defaultB";
return {
withA : function(anotherA) {
a = anotherA;
return this;
},
withB : function(anotherB) {
b = anotherB;
return this;
},
build : function() {
return "A is: " + a +", B is: " + b;
}
};
};
var builder = new Builder();
console.log(builder.build());
var first = builder.withA("a different value for A").withB("a different value for B").build();
var second = builder.withB("second different value for B").build();
var third = builder.withA("now A is different again").build();
console.log(first);
console.log(second);
console.log(third);