vitek-82,
такое поведение, как у Array или Object, достигается простым трюком:
function Func() {
  if (!(this instanceof Func)) {
    return new Func();
  }
  // дальше работа конструктора
}
в условие попадает случай вызова Func(), без new
бытует мнение, что если функция будет работать только как конструктор, то желательно сделать именно так, тогда new будет необязательно.