Глубокий JavaScript
195 subscribers
15 links
Тонкости в лучше языке программирования. Вопросы, пожелания, комментарии — @igorkamyshev
Download Telegram
​​range

Мы должны изменить прототип Number, добавить туда функцию-генератор, которая и будет выдавать числа в заданном промежутке.

В целом, код простой, но в нем есть два интересных момента.

Две точки
Первая точка относится к числу, а вот вторая уже к вызову функции to на результирующем числе.

Number
В начале функции-генератора нужно привести this к примитивному значению, иначе первым элементом будет отдана объектная обертка числа, что не хорошо (их нельзя сравнивать между собой, например).

Предупреждение

Никогда не делайте так в реальном коде. Изменение прототипов встроенных объектов — очень плохая идея, которая приводит к печальным последствиям.

#puzzle_answer
​​Решение из прошлого поста не позволяет установить шаг для интеравала. Это не здорово, но в текущую реализацию легко добавить такой параметр.

К сожалению, придется все переписать, на генераторах построить это решение нелья.

Вручную реализуем интерфейс итератора, и добавим резльтирующему объекту метод by, который тоже вернет итератор, но уже с заданным шагом.

#puzzle_answer