Можно ли передавать функции стрелки в качестве параметров repeat ()?

При поиске функций стрелок я столкнулся с этим примером

let labels = [];
repeat(5, i => {
  labels.push(`Unit ${i + 1}`);
});
console.log(labels);
// > ["Unit 1", "Unit 2", "Unit 3", "Unit 4", "Unit 5"]

Метод 1-го, (счетного) из MDN, по- видимому, принимает только один параметр repeat.

Во-вторых, функции стрелок должны быть написаны так:, String.prototype.repeatа неfunction repeat(n, action) { for (let i = 0; i < n; i++) { action(i); } } repeat(3, console.log);

Это устаревший фрагмент, который все равно не работает, или я должен его интерпретировать по-другому?

javascript,repeat,arrow-functions,

-2

Ответов: 2


1 принят

repeatУпоминается в статье метод не является , а функция автономной определяется в самой статье - это не встроенная функция: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);

Но что, если мы хотим сделать что-то другое, кроме регистрации номеров? Так как «что-то» может быть представлена ??как функция, а функции - это просто значения, мы можем передать наше действие как значение функции.

repeat

Синтаксис, который вы упоминаете

стрелки должны быть написаны так: i = () => {}, а не i => {}

справедливо только в том случае, если рассматриваемая функция стрелки должна принимать точно нулевые параметры. Функция стрелок с одним параметром может иметь круглые скобки, отсутствующие в списке параметров. (Два или более параметра снова требуют скобки)

Упомянутый фрагмент действительно отлично работает:

String


0

Это похоже на собственную функцию repeat, а не одну из них String.

В этом случае вы можете передать функцию с необходимой сигнатурой аргументов функции.

const
    repeat = (l, fn) => {
        var i;
        for (i = 0; i < l; i++) fn(i);
    };

let labels = [];

repeat(5, i => labels.push(`Unit ${i + 1}`));

console.log(labels); // > ["Unit 1", "Unit 2", "Unit 3", "Unit 4", "Unit 5"]

JavaScript, повторяю, стрелок-функции,
Похожие вопросы