Отправленный вами фрагмент кода - это просто функция declaration
. По сути, этот сниппер определяет существование функции с именем gotItAll
, которая принимает один параметр в качестве входных данных. Параметр называется res
, поэтому внутри функции, слово res
относится к параметру функции.
Давайте использовать простую функцию в качестве примера:
function double(x) {
return x * 2
}
Эта функция также является параметром и называется x
. Внутри функции вы называете ее x
.
Когда вы хотите use
функцию, вы вызываете функцию и задаете параметр, такой как:
double(2) // returns 4
double(4) // returns 8
double(7) // returns 14
Как видите, мы можем передать функции double
разные значения. Когда вы вызываете double(4)
, в основном функция учитывает x = 4
, и поэтому каждый раз, когда в объявлении функции вы используете x
, вместо этого вы будете использовать значение 4
.
Вы также можете передавать различные переменные в функцию:
var y = 10
double(y) // returns 20
Так же, как и раньше, вы присваиваете функции переменную y
, значение которой равно 10. Так что в основном программа выполняет x = y
, и каждый раз, когда она ссылается на x
внутри объявления функции, она будет использовать значение y
.
Вернемся к вашему примеру. Я не знаю, что делает эта функция, но в основном res
является именем-заполнителем параметра, который будет передан функции. Эта функция может вызываться из всего кода как gotItAll(variableName)
, и функция будет выполняться с учетом res = variableName
. В вставленном вами сниппере функция только объявлена, но нет примеров фактического использования функции, поэтому вы не видите, откуда взято res
.
РЕДАКТИРОВАТЬ: после вашего комментария я понял, что вы на самом деле имеете в виду. На самом деле, в Javascript вы можете передавать функции в качестве параметра другой функции. Возьмем, к примеру, функцию double
, объявленную выше. Теперь я хочу создать функцию, которая удваивает число, только если они четные. Я могу заявить это:
function doubleEven(x, doublingFunction) {
if (x % 2 === 0) {
return doublingFunction(x)
} else {
return x
}
}
и я могу использовать его как:
doubleEven(2, double) // returns 4
doubleEven(5, double) // returns 5
Обычно я передаю double
в качестве параметра функции doubleEven
. Таким образом, в объявлении doubleEven
значение doublingFunction
становится равным double
, поэтому оно является функцией.
Конечно, в этом примере это глупо, нет необходимости передавать функцию для удвоения числа. Однако это часто используется в javascript для обеспечения обратного вызова асинхронной задачи, такой как сетевой запрос.