How to Run a Function Passed as a Parameter in JavaScript


We’ll often pass functions as parameters in JavaScript in order to run it as a callback function.

Generally, we can just invoke the function normally using parentheses.

Using a Normal Function Call

function callback(param) {
  console.log(param);
}
function run_callback(param, callback_function) {
  callback_function(param);
}
run_callback("Hello", callback); // "Hello"

Using call()

Interestingly enough, we can also set the execution context of the callback function using call(). By default, this context is window, but we can change this.

Using call(), we can explicitly set what the value of this will be in the callback function.

function callback() {
  console.log(this);
}
function run_callback(param, callback_function) {
  callback_function.call(param);
}
run_callback("Hello", callback); // String {"Hello"}