function chainify(fn) {
    return function () {
      var args = [this.value]; // `this` will be the context of a Chain instance

      for (var i = 0; i < arguments.length; i++) {
        args[i + 1] = arguments[i];
      }

      return new Chain(fn.apply(fn, args));
    };
  }
Make a function chainable
@param {function} fn
@return {Function} chain function
@private