code: function jslinq(array) {
  
          //Check arguments
          if (!array)
              throw new Error("Provided data is invalid");
          if (!(array instanceof Array))
              throw new Error("Provided data is not a valid array");
  
          //Set data on current variable
          this.items = array;
  
          //Set function of prototype
          this.select = select;
          this.where = where;
          this.groupBy = groupBy;
          this.join = join;
  		this.intersect = intersect;
          this.distinct = distinct;
  		this.orderBy = orderBy;
  		this.orderByDescending = orderByDescending;
  		this.selectMany = selectMany;
          this.singleOrDefault = singleOrDefault;
  		this.firstOrDefault = firstOrDefault;
  		this.lastOrDefault = lastOrDefault;
  		this.any = any;
  		this.all = all;
          this.toList = toList;
          this.count = count;
  		this.skip = skip;
  		this.take = take;
  		this.max = max;
  		this.min = min;
  		this.remove = remove;
  		this.subtract = subtract;
  		this.sum = sum;
          this.average = average;
  
          //Return for chaining
          return this;
      }
docs: Constructor function