Поскольку ваш пример представляет собой встроенную функцию типа Object, как было сказано выше, он аналогичен для этого типа, он не работает аналогичным образом для большинства других встроенных функций, таких как Number (). , Вы должны быть очень осторожны, вызывая их с ключевым словом «новый» или нет. Потому что по умолчанию ключевое слово 'new' с конструктором функции возвращает объект, а не примитивный тип напрямую. Таким образом, вы не можете, например, проверить строгое равенство двух переменных, одна из которых объявлена и присвоена с помощью new Number()
, а другая с Number()
Примером может быть:
var num1 = Number(26);
var num2 = new Number(26);
num1 == num2; // returns true
num1 === num2; // returns false
Вы можете проверить разницу в журнале консоли:
console.log(num1);
> 26
console.log(num2);
> Number {26}
> __proto__: Number
> [[PrimitiveValue]]: 26