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