Сводка:
В JavaScript функции могут быть объявлены двумя способами:
объявления функций:
function foo () {}
выражения функций:
const foo = function () {}
Ваша запись, которая передает функции как переменные, называется выражением функции. Выражение - это просто строка кода, которая оценивается как значение .Значением в этом случае является объект функции .Это все возможно, потому что в функциях JavaScript есть граждане первого класса.Это означает, что функции могут передаваться (например, в параметрах или переменных), как и любые другие данные.
Почему это полезно?
Когда у нас есть функции, хранящиеся внутри переменной или проходаэто как параметр, мы можем создавать функции более высокого порядка.Функции высшего порядка - это функции, которые принимают функцию в качестве аргумента или возвращают функцию (или обе).Это может быть очень полезно в различных случаях, и в JS даже есть встроенная очень удобная функция более высокого порядка.Например: map
.
const arr = [1,2,3];
const doubleArr = arr.map((el) => el * 2);
console.log(doubleArr);
В приведенном выше примере функция map
принимает обратный вызов, который выполняется для каждого элемента массива, а затем возвращает новый массив.
В вашем примере:
var operationCallback = {
onsucess: function([some parameters]){
},
onfailure:failureFunction
}
operationCallback - это объект.В этом объекте есть 2 свойства, которые являются функциями (методы, связанные с объектом).