JSFiddle - React, Tailwind, and code Playground
JavaScript
var filterBuilder = {
filters: [],
addFilter: function(options) {
var filter = {
'type': 'selector',
'dimension': options.dimension,
'value': options.value
}
this.filters.push(filter);
return this;
},
build: function() {
return this.filters;
}
};
console.log( Object.create(filterBuilder, { filters : { writable : true, enumerable : true, value : [] }}).addFilter({dimension: '1', value: 'v'}).build() ) // one filter
console.log( Object.create(filterBuilder, { filters : { writable : true, enumerable : true, value : [] }}).addFilter({dimension: '1', value: 'v'}).addFilter({dimension: '1', value: 'v'}).build() ) // two filters
console.log( filterBuilder ); // filters in the prototype object are still empty