Number.prototype.times
Условие
Добавь методу чисел times(cb): вызывает cb n раз с индексом от 0. Для нецелых и
отрицательных ничего не делает. Верни функцию install(), которая ставит метод на прототип.
Что проверяют тесты
вызывает n раз
ноль ничего не делает
дробное игнорируется
отрицательное игнорируется
работает через переменную
Как подойти
Задача проверяет три вещи разом: понимание прототипов, разницу обычной и стрелочной функции и обёртки примитивов. (3).times(...) временно оборачивает примитив в объект Number, поэтому this - объект, и this === 3 ложно. valueOf достаёт примитив. Стрелка на прототипе возьмёт this из внешней области и сломается. В продакшене расширять встроенные прототипы не стоит - конфликты с будущими версиями языка и с чужими библиотеками; это стоит проговорить.
Подсказки: 3
- Внутри метода прототипа this - объект-обёртка Number, а не примитив.
- valueOf возвращает само число.
- Стрелочная функция здесь не подойдёт: у неё нет своего this.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.