`

Functions/Methods Chaining

Function Chaining is a when a function returns an object with a function as a property then calling that returned function property immediately

var foo = function () {
  console.log("Insider foo function");
  return {
    innerFunction() {
      console.log("Insider inner function");
    },
  };
};

foo().innerFunction();

function infiniteConcat(initialString) {
  this.initialString = initialString;
  this.result = initialString;

  this.concat = function (incomingValue) {
    this.result = this.result + " " + incomingValue;
    return this;
  };
}

var concat1 = new infiniteConcat("string1");