Вопрос:

Что означает синтаксис этой документации в MDN для функции JavaScript?

javascript arrays

808 просмотра

2 ответа

331 Репутация автора

Я изучаю JavaScript с помощью руководства «Eloquent JavaScript» и сейчас выполняю упражнения из главы 5 «Функции высокого порядка» . Одна из функций, представленных в этой главе, - « уменьшить ». Я понимаю, как это работает, моя проблема возникает, когда я пытаюсь понять ее определение в MDN . Я не понимаю определение синтаксиса, которое оно дает:

arr.reduce(callback[, initialValue])

Этот раздел синтаксиса сопровождается разделом под названием Параметры. Это:

  • Перезвони
    • PreviousValue
    • текущая стоимость
    • индекс
    • массив
  • initialValue (необязательно)

Я не понимаю, что означают квадратные скобки и запятая? Потому что, когда я вижу квадратные скобки, я сразу думаю о массивах. А почему именно initialValueв определении, а не в других параметрах? Почему между квадратными скобками и пробелами нет callback?

Потому что ниже есть два примера:

Пример 1

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
    return previousValue + currentValue;
});

Пример 2

var total = [0, 1, 2, 3].reduce(function(a, b) {
    return a + b;
});
// total == 6

и я не знаю, как они вписываются в определение.

Спасибо

Автор: Noob_Number_1 Источник Размещён: 07.03.2015 12:02

Ответы (2)


3 плюса

93254 Репутация автора

Обычно документация API используется []для обозначения необязательных параметров. Тем не менее, []это не является частью синтаксиса по использованию. Это просто соглашение по документации.

Автор: Joseph Размещён: 07.03.2015 12:09

0 плюса

810 Репутация автора

Как уже объяснялось в других ответах, параметры внутри «[]» являются необязательными. Что касается вопроса о том, почему «другие параметры» (т. Е. Предыдущие значения и т. Д.) Отсутствуют, то это параметры для, callbackа не для reduce. Так callbackбудут получать эти аргументы при каждом запуске reduce.

Автор: Abhijit Размещён: 07.03.2015 01:58
Вопросы из категории :
32x32