Метод repeat
, упомянутый в статье, - это не String.prototype.repeat
, а отдельная функция, определенная в самой статье - это не встроенная функция:
Но что, если мы хотимсделать что-то кроме записи чисел?Поскольку «делать что-то» можно представить как функцию, а функции - просто значения, мы можем передать наше действие как значение функции.
function repeat(n, action) {
for (let i = 0; i < n; i++) {
action(i);
}
}
repeat(3, console.log);
Синтаксис, который вы упоминаете
Функции стрелок должны быть написаны так: i = () => {}, а не i =>{}
имеет значение «истина», только если рассматриваемая функция стрелки предназначена для приема в точности нулевых параметров.Функция стрелки с одним параметром может исключать скобки из списка параметров.(Для двух или более параметров снова нужны скобки)
Упомянутый вами фрагмент действительно работает нормально:
function repeat(n, action) {
for (let i = 0; i < n; i++) {
action(i);
}
}
let labels = [];
repeat(5, i => {
labels.push(`Unit ${i + 1}`);
});
console.log(labels);