Почитав десяток другой статей об ООП в JS попытался подытожить то, что понял.
Получается создавая переменную let i = 3 конструктор берет свойства и методы из прототипов объекта number?
Или что-то не так?
При необходимости вызова метода относительно примитива интерпретатор заворачивает значение в объект-обертку, результатом может быть другой примитив, а на временную "обертку" не остается никаких ссылок и сборщик мусора ее чуть позже где-то в тишине прикончит...
То есть 0.004.toFixed(2) неявно превратится в (new Number(0.004)).toFixed(2).
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости