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