Потому что это не метод, а класс (прототип). Также существуют:
String, Boolean, Object, Array. При вызове классов
Number, String, Boolean без оператора
new они постараются привести переданное значение к примитиву (например
String(true) // "true". В том случае, если их вызвать с оператором
new, то они вернут новый объект (не путать с Object), значением в котором будет переданное значение. Лучше так не создавать переменные данных классов, а использовать примитивы (об этом можете почитать в книге
Стоян Стефанов - JavaScript Шаблоны). У
Object особое поведение при его вызове без
new - он постарается понять тип переменной и впоследствии вернет экземпляр класса определенного примитива:
Object(100) // Number { 100 }
typeof Object(100) // "object"
typeof 100 // "number"
Object(100) instanceof Number // true
100 instanceof Number // false
Вызов класса
Array без ключевого слова
new или с ним:
с 1 аргументом - вернет пустой массив, длиной равной переданному аргументу;
с 2 и более аргументами - вернет массив значений.