A combination of a function object and a scope (a set of variable bindings)
in which the function's variables are resolved is called a closure.
Callbacks are functions that are passed into another function as an argument.
Closures are functions that are nested in other functions, and it's often used to avoid scope clash
with other parts of a JavaScript program