JavaScript Program to Pass a Function as Parameter

Updated on 15 May, 2025
Pass a function as parameter header image

Introduction

Passing a function as a parameter in JavaScript is a fundamental technique that enables developers to write flexible, reusable, and modular code. Since JavaScript supports first-class functions, it allows functions to be treated like variables, meaning they can be assigned, returned, and passed as arguments. This concept, often referred to as using callback functions, is essential for managing asynchronous operations such as event handling, API calls, or timers, and it allows developers to write clean, efficient, and scalable JavaScript code.

In this article, you will learn how to effectively pass functions as parameters in JavaScript through diverse examples. Discover how this approach can be utilized in various scenarios, including event handling, asynchronous programming, and array manipulation.

Basics of Parameters and Callback Functions

What Is a Parameter in JavaScript?

A parameter in JavaScript is a named variable passed into a function definition, used to receive input values when the function is called. Parameters allow functions to work with different data each time they are executed.

For example, in the function greet(name), name is a parameter. When you call greet("Alice"), the value "Alice" is passed as an argument, and the function uses it to return a personalized message. Understanding parameters is essential for writing flexible and reusable functions in programming.

What Is a Callback in Programming?

A callback in programming is a function passed into another function as an argument, which is then invoked inside the outer function to complete a routine or action. In JavaScript, callbacks are commonly used to handle asynchronous operations such as loading data from an API or responding to user events. Because JavaScript functions are first-class objects, they can be passed around as arguments, making callbacks a natural and powerful feature of the language.

Basics of Passing Functions as Parameters

Basic Example: A Function That Executes Another Function

  1. Define a function that accepts another function as a parameter.

  2. Inside this function, execute the passed function.

    javascript
    function greet(name) {
        return `Hello, ${name}!`;
    }
    
    function executeGreetFunction(fn, userName) {
        return fn(userName);
    }
    

    Here, executeGreetFunction accepts a function fn and a string userName as parameters. fn is then called with userName as its argument inside executeGreetFunction.

Calling the Function

  1. Call executeGreetFunction by passing the greet function and a name as arguments.

    javascript
    const message = executeGreetFunction(greet, 'Alice');
    console.log(message); // Outputs: Hello, Alice!
    

    This code shows how executeGreetFunction is utilized to call the greet function dynamically with the parameter 'Alice', demonstrating the flexibility of passing functions as arguments.

Advanced Usage: Executing an Asynchronous Function with a Callback in JavaScript

Handling Asynchronous Operations

  1. Define a function that performs an asynchronous operation using setTimeout.

  2. Pass a callback function to handle the event after a delay.

    javascript
    function delayedLog(message, callback) {
        setTimeout(() => {
            console.log(message);
            callback();
        }, 2000);
    }
    

    In this example, delayedLog takes a string and a callback function, then uses setTimeout to delay the console log action. The callback function is called after the log completes.

Executing the Asynchronous Function

  1. Create and pass a callback function to handle actions after the timeout.

    javascript
    delayedLog('This message displays after 2 seconds.', () => {
        console.log('Delay complete.');
    });
    

    This usage demonstrates an asynchronous operation where the callback function is executed once the preceding log is completed after a delay.

Utilizing Functions in Array Operations

Example: Array Manipulation with Function Parameters

  1. Apply a function to every element of an array using Array.map().

    javascript
    const numbers = [1, 2, 3, 4, 5];
    const squares = numbers.map(function(num) { return num * num; });
    console.log(squares); // Outputs: [1, 4, 9, 16, 25]
    

    This example takes an array of numbers and uses map() to create a new array squares, where each element is the square of the corresponding element in the original array. The function used to calculate the square is passed as a parameter to map().

Conclusion

Passing functions as parameters in JavaScript unlocks a range of possibilities for writing more concise, modular, and readable code. Whether it's handling asynchronous operations elegantly, dynamically invoking functions, or manipulating collections, the pattern of leveraging first-class functions is a powerful tool in any JavaScript developer's arsenal. Implement these strategies in your projects to enhance code quality and maintainability.

Comments

No comments yet.